當用戶點擊視圖邊界之外時,有什麼辦法讓UIView退出其第一響應者狀態?讓UIView在視圖外部點擊時退出第一響應者
1
A
回答
2
在其他視圖或視圖中捕捉觸摸。在處理該觸摸時,請調用一個讓您的視圖恢復響應者狀態的選擇器。
0
做研究時發現更好的答案...
Get the current first responder without using a private API
有如何導航意見,找到的第一個響應者,其可作爲您的解決方案的基礎示例代碼
您可以先放置透明視圖,然後再將視圖作爲子視圖。然後,可以使用透明視圖中的任何觸摸事件來辭退第一響應者。
如果有多個視圖,這可能是一種方法,主視圖的邊界之外進行管理
-1
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[yourtextfield resignFirstResponder];
//You can have multiple textfields in here
}
0
這是很簡單的,需要在兩個步驟覆蓋:
- 添加手勢識別器趕上視圖抽頭
- 辭職第一響應
感謝@Nathan Eror爲first part。我們可以添加一個手勢識別器到viewDidLoad方法來註冊時,用戶點擊屏幕:
UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[self.view addGestureRecognizer:singleFingerTap];
下一步,我們將增加檢測此功能和代碼來清除鍵盤:
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
CGPoint location = [recognizer locationInView:[recognizer.view superview]];
[textField resignFirstResponder];
}
值得注意的是,如果您的視圖中有多個textField,您將需要全部辭職,因爲沒有辦法知道哪個是當前的第一響應者。
相關問題
- 1. UITableView - 在外部觸摸上退出第一響應者
- 2. TextField不會使用UIModalPresentationFormSheet視圖退出第一響應者
- 3. UITextField不會退出第一響應者?
- 4. 帶有UIMenucontroller的UILabel不會退出外部觸摸的第一響應者
- 5. 從另一個視圖控制器中退出第一個響應者
- 6. UIView帶走第一響應者狀態
- 7. 當使用UINavigationController時,退出didSelectRowAtIndexPath中的第一響應者
- 8. 在點擊任何部分視圖時退出鍵盤
- 9. 試圖讓響應點擊時件
- 10. 顯示窗口級別的視圖UIWindowLevelStatusBar退出當前的第一響應者
- 11. C#&XAML如何讓按鈕在第一次點擊時作出響應
- 12. NSTextField在退出第一響應者後繪製白色區域
- 13. UITextField在UIButton touch上退出第一響應者
- 14. 使UITextField從另一個類別中退出第一響應者
- 15. iPad不退出響應者
- 16. 如何檢查控件是否退出第一響應者或成爲第一響應者?
- 17. 視圖控制器何時成爲第一響應者?
- 18. 停止UISearchDisplay控制器從退出第一響應者鍵盤
- 19. 保持UITextField不會退出第一個響應者的狀態
- 20. 使用接口生成器退出第一響應者
- 21. NSTextField事件並退出第一響應者
- 22. 退出多個UITextField的第一個響應者
- 23. 第一響應者
- 24. 與第一響應者識別的UITextField在我目前的UIView
- 25. 如何將第一個響應者從一個UIView「轉移」到另一個UIView?
- 26. 點擊listItem中的按鈕不響應第一次點擊,但響應第二次點擊,如何設置響應第一次點擊?
- 27. 點擊了下拉項不會在第一次點擊響應
- 28. 如何使用導航控制器在模態視圖中退出第一響應者?
- 29. 退出應用程序第二次後退按鈕點擊 - Android
- 30. iPhone第一響應者
你能否解釋一下你的答案,至少粗略一點? – 2015-01-09 14:40:43
當用戶在屏幕上觸摸時,這個委託方法將會調用,因爲這是UIViewController類的子類viewcontroller類。所以在調用此方法時,我們調用UITextField委託方法「resignFirstResponder」。 – 2015-01-10 12:05:45