通常当您触摸文本输入区域时,键盘会弹出,当您触摸屏幕的空白区域时,键盘会消失.如何实现这一目标?
就像我们在iphone safari上体验到的一样......
谢谢
Hit*_*can 115
更新方式(推荐):
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)
这将结束所有子视图的编辑并重新签署第一个响应者.
其他方式(枚举所有文本视图):
这是一步一步的:
将IBAction添加到视图控制器,例如 - (IBAction)backgroundTouch:(id)sender
在backgroundTouch操作中,您需要将resignFirstResponder消息发送到视图中的所有文本框.这是不幸的,但是必要的,因为目前无法检索当前具有FirstResponder状态的对象.它应该看起来像这样:
- (IBAction)backgroundTouch:(id)sender {
[someTextBox resignFirstResponder];
[anotherTextBox resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
向视图添加一个按钮控件,将其大小覆盖整个可见区域(状态栏或任何选项卡或导航控制器除外).选择按钮,然后转到布局菜单并选择发送至返回.同时将按钮的类型设置为自定义,如果您没有专门为其提供任何绘图代码,则该类型是不可见的.
将Button的Touch Up Inside事件连接到backgroundTouch:动作并尝试一下.
Sha*_*lam 73
使用此简单解决方案
对于Swift 4:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
Run Code Online (Sandbox Code Playgroud)
对于Swift 2:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
Run Code Online (Sandbox Code Playgroud)
对于目标C:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)
适用于UITextField,UITextView和所有子视图.
小智 16
忘记在后台放一个按钮有简单的解决方案
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.textfieldName resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88025 次 |
| 最近记录: |