2015年1月21日 星期三

Swift iOS 輸入完後 讓虛擬鍵盤消失

假設今天我們使用UITextField來做輸入
iOS裝置會跳出一個虛擬鍵盤

我們要如何讓使用者輸入完畢後
按下畫面的其他地方 就讓鍵盤自動消失呢?
(原本iOS是不會讓它彈回去的哦)
如果是這樣的話 這個比較簡單 可以參考以下的程式碼
在你的UIViewController中 重寫touchEnded這個方法
並在裡面叫你的UITextField resignFirstResponder()
就能讓虛擬鍵盤退回去囉

而若是要按下return後 就讓鍵盤消失
則必須要這樣子做 (原先iOS也不會自己消失)
先在UIViewController使用UItextFieldDelegate這個協定
(協定protocol其實就像是Java的介面Interface)
再來讓我們的UITextField可以操作到這個協定
那因為協定是訂在UIViewController身上 所以我們使用self來取得
接著再重寫這個textFieldShouldReturn方法
然後裡面讓他resignFirstResponder()
就完成囉!

參考網址:http://www.imooc.com/video/3704

Swift 在iOS 7~8 對話框 UIAlertView/UIAlertController

假設我們的App有個部分要讓使用者輸入數值
但是使用者忘記輸入 這時我們可以彈出一個框框警告一下
可是我發現在iOS 7跟8的寫法是不一樣的呀
讓我們看看下面的情形吧

這是我們的成果 先看一下


再來看iOS 8的寫法 使用UIAlertController 感覺比較複雜

iOS 7的寫法就簡單多了 可是這在iOS 8是deprecated
建議使用上面的寫法

所以我看到stackoverflow有一個這樣子的寫法
他先判斷UIAlertController這個Class是否存在
如果有存在就使用UIAlertController
回傳值為nil代表不存在 就使用UIAlertView

所以上面的程式碼就改成

當然這樣子寫有一點過於複雜了
所以有人建議說 當你不支援iOS 7的時候
這時在完全用UIAlertController
在這之前用UIAlertView寫 Apple也不會管你的 呵呵



2015年1月19日 星期一

Swift eunm fromRaw() and toRaw() in Xcode 6.1

首先我們先建立一個Rank的列舉 大致如下
我們可以看到Ace = 1 有趣的是
就算我們沒有給Two, Three...值 他也會遞增給予值
所以Two = 2, Three = 3
到最後的Jack = 11, King = 13

要注意的是 在Xcode 6.1當中
已經沒有fromRaw()這個方法了
改為列舉的屬性rawValue
在這邊我們宣告一個常數ace取得Rank中ace的列舉值
ace再轉換成rawValue就可以看到原先的整數值:1

toRaw()這個方法也被替換掉了
取而代之的是以下的寫法
我把raw為1的列舉值記在rawAce當中
你可以看到 他跟ace是相同的列舉值

大家也可以看看stackoverflow 這邊也有人在討論
看看第3個回應 解說得還不錯
http://stackoverflow.com/questions/26444107/enums-rawvalue-property-not-recognized

2015年1月16日 星期五

Macbook Pro

趁大學時 我利用教育方案買了Mac
會想買的原因是最主要的因為想要開發iOS
我家裡原先就有一台抽到的iPad
但是我卻只是拿來玩遊戲
這感覺辜負了上天給我的機會
再加上我妹妹也需要一台電腦
所以我就買了這台Pro 而我舊的Acer就給我妹妹用吧

我預計是在寒假的時候來學習開發iOS的應用程式
因此我在這個時間入手
我在剛剛打開的感覺很刺激
不過OS X已經不像以前了 現在很扁平化 就像iOS7~8
真的跟我的iPad越來越像了 哈哈

一開始最不適應的是中英文的轉換
一定要跑到左上角用滑鼠切
不過知道快捷鍵之後就好了
command + space
其實跟Windows一樣嘛~
在Linux中 切換中文可是用ctrl + alt + 6 呢!
雖然可以改 不過已經習慣了 呵呵

說到輸入法 中文注音在OS X是比較不一樣的
按下大小寫的轉換caps lock 不是轉大小寫
是轉成英文 那要輸入英文該怎麼辦呢?
要按著shift就可以變大小囉
我也接著發現 我在Linux的輸入法也是如此
我本以為是Bug 原來這是Mac的操作模式呀!

再來第二個覺得奇特的就是
點x是關掉應用程式沒有錯
但是並不是結束應用程式
要結束的話請用快捷鍵command + q哦!

話說command鍵就好像Windows的ctrl鍵呢
不過Mac上面也有ctrl啊
叫做control 不過我目前還沒有看到它的用途

還記得2小時之前用的感覺 感覺比Linux用起來還怪異呢
畢竟Linux有些還是跟Windows的概念很像
不過其實用了OS X之後也會發現
很多Linux的操作也是源自OS X的呢!

好啦! 現在我在下載Android Studio 來聊聊點其他的吧
之前去台灣Google總部參觀的時候
發現其實那邊的工程師都是用Mac喲
要不然就是其他品牌的螢幕 但都是OS X的畫面
真的是很有趣呢Google跟Apple不是對手嗎?
Google卻在使用OS X呢 這代表品質真的是很優良吧!

該結束了 難得打那麼長的文章
不過最後我還有一個問題還沒解決
Pro的喇叭在哪呀 我可以播音樂卻看不到喇叭 真怪呢!
希望之後我能把iOS學得很好
開發出大家都喜歡的優質App哦!