2014年1月27日 星期一

Xcode 7 裡的鍵盤退出新機制

以往當 App 內使用了提供使用者輸入文字的元件時,如:UITextField,我們就得去考慮鍵盤在什麼情形下應該退出螢幕,讓使用者能繼續和螢幕上的其他元件進行互動。

一般來說,不外乎:

.製訂鍵盤的 Return Key 類型為 Done,讓使用者按下右下角的 Done 鈕來退鍵盤。
.讓使用者能輕擊畫面上其他的元件來退鍵盤。

前者需要實作 Delegate 方法來取得鍵盤操作的 call back 時機;後者需要註冊其他的 View 上的手勢操作或實作 View 的子類別來針對 touch 事件函式攔截時機。不論是何種時機到來,都是使用呼叫「輸入元件」(本例為 UITextField) 的 resignFirstResponder 方法,完工。

iOS 7 裡,Apple 官方提供的 App 支援另一個退鍵盤的操作方式:只要把鍵盤外的 view 往下一撥,鍵盤就會往下退出了。這個操作方式,非常符合 Apple 一直追求一根姆指就能流暢操作 App 的精神。

這個操作方式也開放給開發者利用了,而且非常容易實作。
只要在 InterfaceBuilder / Storyboard 編輯區,選取要被往下撥的 View。這個 View 必須得是 UIScrollView及其子類。然後就可以在右邊的 Attributes inspector 中找到 Scroll View 的 Keyboard 設定,選擇其值為「Dismiss interactively」即可。

另一個選擇是使用 DAKeyboardControl 這個 MIT License 的 framework。

沒有留言:

張貼留言