當iPhone的Messages應用程序顯示鍵盤時,如果用戶從消息tableview開始向下滑動並繼續進入鍵盤區域,鍵盤將開始關閉。如果他們在此過程中上下移動手指,則鍵盤會隨之移動。以滑動手勢關閉鍵盤(如在消息應用程序中)
蘋果是用私有API來做這件事,還是有辦法像這樣控制鍵盤(我認爲)手勢識別器?
當iPhone的Messages應用程序顯示鍵盤時,如果用戶從消息tableview開始向下滑動並繼續進入鍵盤區域,鍵盤將開始關閉。如果他們在此過程中上下移動手指,則鍵盤會隨之移動。以滑動手勢關閉鍵盤(如在消息應用程序中)
蘋果是用私有API來做這件事,還是有辦法像這樣控制鍵盤(我認爲)手勢識別器?
您可以使用UISwipeGestureRecognizer來執行此操作。我不知道如何使用代碼來實現它,但如果您使用的是新的Xcode 4.2測試版,然後下面有一個簡單的方法:
- (IBAction)dismiss:(id)sender;
在你的xib中轉到你的視圖,併爲你查看UIControl。
將UISwipeGestureRecognizer從庫中拖放到視圖中。
將IBAction(TouchDown)連接到UISwipeGestureRecognizer。
編寫代碼以關閉鍵盤:
- (IBAction)dismiss:(id)sender
{
[yourTextField resignFirstResponder];
}
完成!
我認爲最好的方法是在文本輸入容器上放置一個隱藏的按鈕。一個長條,當它檢測到觸地和釋放或取消,然後隱藏鍵盤。
我要試一下,我會讓你知道我是怎麼去的。
簡答題;他們很可能在那裏做一些'私人API'的事情。
我很確定鍵盤是在獨立視圖中,位於您的應用程序窗口之上(您無權訪問/控制它,並始終顯示在頂部,無論如何)。您可以做的最多的是讓輸入視圖成爲/退出第一響應者狀態,並且鍵盤將相應地出現/消失:全部或全部。
您可能能夠獲取鍵盤視圖的句柄並更改其框架屬性(使用記錄的類的未記錄屬性以及未記錄的類),但我相當肯定會讓您退出存儲。
簡直太棒了!(_someone_需要接受這個作爲答案) –
優秀,你應該有超過10個upvotes的東西! –
真棒真棒真棒..... –
我的回答包含以下無需提供鏈接,有可能在未來 –
最簡單的辦法是設置以下兩個屬性:
轟,寶貝!
幸運的是,蘋果在UIScrollView
上添加了方便的物業keyboardDismissMode
,讓您的生活變得輕鬆一些。
現在您的應用程序可以像Messages.app一樣改變Storyboard上的單個屬性,或者添加一行代碼!
此屬性使用新的UIScrollViewKeyboardDismissMode
枚舉。此枚舉的可能值如下:
UIScrollViewKeyboardDismissModeNone // the keyboard is not dismissed automatically when scrolling
UIScrollViewKeyboardDismissModeOnDrag // dismisses the keyboard when a drag begins
UIScrollViewKeyboardDismissModeInteractive // the keyboard follows the dragging touch off screen, and may be pulled upward again to cancel the dismiss
這裏的Storyboard屬性更改爲解僱滾動鍵盤:
希望幫助您解決問題,
這太好了。興奮起來,我無事可做,只是勾選了一個框。然後意識到我的鍵盤頂部附帶的輸入視圖並未隨之移動...... doh。 – bandejapaisa
在swift你可以使用下面的代碼來獲取當前鍵盤的視圖容器(如果存在),比你可以更改在你的代碼e是的框架:這裏
UIApplication.shared.windows
.filter{ NSStringFromClass($0.classForCoder) == "UIRemoteKeyboardWindow" }
.first?.subviews.filter { NSStringFromClass($0.classForCoder) == "UIInputSetContainerView" }
.first?.subviews.filter { NSStringFromClass($0.classForCoder) == "UIInputSetHostView" }
.first
順便說是一個叫Reveal工具,讓你可以看到視圖層次。
它不會在我的iPhone上這樣做。 (3GS,iOS 4.3.3) – Mundi
啊,這可能假設在未來的OS版本中。原則上,我想討論如何獲得這樣的效果。 –
我相信這是一個iOS 5.x功能。現在應該退出NDA。 –