Dismiss the numberPad keyboard type

如何收起數字鍵盤

--

辦公室一隅

iOS內建的數字鍵盤預設是沒有return鍵的,有時候會造成使用者的困擾,是的,客戶直接跟我抱怨:『數字鍵盤怎麼收不起來啊?』(真的抱歉,我是菜鳥工程師)。

好的,菜鳥工程師要來紀錄一下怎麼讓數字鍵盤收起來!

內建的鍵盤Type

apple爸爸給了我們很多鍵盤Type,很好用很方便,所有的種類可以參考:

使用數字鍵盤可以避免使用者誤輸入其他文字及符號,可減少輸入檢核的步驟,真的蠻方便的。

numberPad

很簡單只要這樣做:

swift

objective-c

numberLabel.keyboardType = .numberPad

可是,輸入完數字要怎麼收鍵盤啊?

方法一:點擊空白處收起鍵盤

我很喜歡這個方法,這方法適用於所有輸入類型的TextField,可以增快輸入完所有欄位的速度。

點擊空白處收起鍵盤

這方法是使用UITapGestureRecognizer處理手勢動作後的任務,在view上面增加手勢點擊事件,點擊空白處結束編輯離開鍵盤。

swift

然後在viewDidLoad呼叫此function,之後點擊畫面空白處都可以收鍵盤了。

TestViewController

objective-c

這裡我是直接寫在viewDidLoad裡面

一樣只要點擊畫面空白處都可以收鍵盤了。

方法二:在數字鍵盤上面增加按鈕收起鍵盤

這個方法可能比較直覺式,就跟其他Type有return鍵一樣(但我個人還是喜歡點空白處收鍵盤啦!)

按Done鍵收鍵盤

做法是在數字鍵盤上使用UIToolbar並用UIBarButtonItem去增加Done鍵,然後再呼叫resignFirstResponder函式把鍵盤收起來。

swift

我會寫在Swift File裡,這樣之後不管哪一個class都可以呼叫這個方法。

Swift File

然後在要使用此function的class去呼叫它。

TestViewController
File.swift

objective-c

新增一個Public class放收數字鍵盤的function(一樣是讓所有class都可呼叫此function)。

.h 檔增加:

這裡我設定要傳入使用此function的TextField。

.m 檔增加:

然後在要使用此function的class去呼叫它。

ps. _uc是我Public class的名稱啦!對了!objective-c如果要呼叫Public class裡的function,要先import class喲!

不知道有幾位新手會想看objective-c的寫法,就當作是寫給我自己看的囉!如果大家有更好的方法也歡迎與我分享。

好久沒寫文章,最近有寫一個小作品但還沒空分享,等我有空再來補一補(哭)。

如果有值得大家參考的地方再麻煩大家幫我拍拍手喲,謝謝大家耐心閱讀🙇‍♀️

--

--

Julia Wang
彼得潘的 Swift iOS / Flutter App 開發教室

Learning Programming , Hiking , Travels , Tour , Exploring nature 『你必須要很努力,才能看起來毫不費力』