通常当你触摸文本输入区域,键盘弹出,当你触摸屏幕的空白区域,键盘消失。 如何做到这一点?
就像我们经历了在iPhone上的Safari ......
谢谢
通常当你触摸文本输入区域,键盘弹出,当你触摸屏幕的空白区域,键盘消失。 如何做到这一点?
就像我们经历了在iPhone上的Safari ......
谢谢
更新方式(推荐):
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
这将结束在所有子视图编辑和辞职第一响应者。
其他方式(列举了所有文本视图):
这里有一个步步为它的步骤:
一个IBAction为添加到您的视图控制器,如 - (IBAction为)backgroundTouch:(ID)发送者
在backgroundTouch动作,你需要发送resignFirstResponder消息到所有的文本框在您的视图。 这是不幸的,但必要的,因为目前尚未有方法来检索当前具有FirstResponder状态的对象。 它应该是这个样子:
- (IBAction)backgroundTouch:(id)sender {
[someTextBox resignFirstResponder];
[anotherTextBox resignFirstResponder];
}
一个按钮控制添加到视图,它的大小,以覆盖整个可见区域(除了状态栏或任何标签或导航控制器)。 选择该按钮,然后去布局菜单,然后选择发送到上一步。 还设置了按钮的类型来定制,如果不专门为它提供任何绘图代码是不可见的。
按钮的触摸的内心活动连接到backgroundTouch:行动和尝试。
使用这个简单的解决方案
对于斯威夫特4:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
对于斯威夫特2:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
客观C:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
工程与的UITextField,UITextView的所有子视图。
忘记把一个按钮,在后台有简单的解决方案
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.textfieldName resignFirstResponder];
}
有一个关于这个问题的教程(也涉及数字键盘没有DONE键)在这里
对于>的iOS 4.0还有另一种解决方案(也许更好)有了这个代码,单一的水龙头鉴于隐藏键盘的任何地方。
// single tap to resign keyboard
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithBlock:^(UIGestureRecognizer *rec){
[input_text resignFirstResponder];
}];
self.singleTapRecognizer.numberOfTapsRequired = 1;
self.singleTapRecognizer.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:singleTapRecognizer];
发送resignFirstResponder
的控制。
下面的代码工作正常xamarin iOS的项目:
public override void TouchesBegan (NSSet touches, UIEvent evt){
View.EndEditing (true);
}
你可以做这样还
通过在视图触摸背景隐藏键盘
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[[self view] endEditing:YES];
}
我太有这个问题,这是非常烦人。 但我想出了如何摆脱键盘上的事故。 说你发短信约翰,还有从你查看你的谈话,并因此减少了,你可以看到屏幕的方式键盘。 好吧然后点击邮件中留下的uppwer,然后选择您所发短信的记录,不同的人,然后在左上角再次袭来的消息。 然后回去,并选择约翰。 没有你回到约翰交谈,通过键盘消失。 接缝很多,但它是相当快。 你会认为他们会只是把一个隐藏按钮键盘笑希望帮助,或者是很清晰的。
我无法编译瓦尔的回答上面使用“initWithBlock:”选择。
此代码对我的作品。 这种添加到定义视图的方法 - 注意,我的观点是由那我想对单轻叩响应子视图是“chatView”。 使用键盘输入的视场被命名为“chatInput”。
// single tap to resign (hide) the keyboard
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
singleTapRecognizer.numberOfTouchesRequired = 1;
singleTapRecognizer.cancelsTouchesInView = NO;
[chatContent addGestureRecognizer:singleTapRecognizer];
然后加入自来水处理方法。
/**
* Handles a recognized single tap gesture.
*/
- (void) handleTapFrom: (UITapGestureRecognizer *) recognizer {
// hide the keyboard
NSLog(@"hiding the keyboard");
[chatInput resignFirstResponder];
}
这个解决方案应该很好地工作,如果你是迅速和iOS 8/9的工作:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true)
}