因此,我有一个自创建的顶级条形控制器,它正在我的其他控制器视图中实现。我在这顶栏上有个文本框。我想知道,如果用户单击键盘之外的任何一个,那么让键盘退出的最佳方法是什么。我确实有一个点击手势识别器来执行方法拒绝键盘。但是,只有当用户单击键盘外的顶部栏时,此操作才有效。是否有一种方法来设置它,如果用户点击屏幕上的任何一个,那么这将取消键盘?
发布于 2014-02-26 20:12:28
我要描述的方法是一次黑客攻击,但仍然有效。
UIButton的框架创建透明的view,如下所示:
UIButton* overlay = UIButton buttonWithType:UIButtonTypeCustom;overlay.frame = self.view.bounds;overlay.backgroundColor = UIColor clearColor;覆盖附加目标:self action:@selector(hideOverlay:) forControlEvents:UIControlEventTouchDown;[self.view.subviews插入子视图: overlay belowSubview:self.textField];hideOverlay来关闭键盘并隐藏透明的:
-(HideOverlay):(Id)发送方{ UIView* overlay =发件人;overlay;self.textField resignFirstResponder;}理想情况下,您应该调用textFieldDidBeginEditing:协议UITextFieldDelegate方法中的第一个代码块,并相应地注册您的调用类。
发布于 2014-02-26 20:12:06
您可以尝试为文本字段提供一个透明的inputAccessoryView,大小可以填充屏幕的其余部分,用于捕捉点击和取消键盘。
https://stackoverflow.com/questions/22051907
复制相似问题