我在Interface Builder中创建了一个文本字段。我将它的“返回键”设置为完成。这是一行输入(所以它不需要多行)。
当用户点击完成按钮时,如何隐藏虚拟键盘?
答案 0 :(得分:153)
实施委托方法UITextFieldDelegate
,然后:
- (void)viewDidLoad {
[super viewDidLoad];
self.yourIBtextField.delegate = self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
答案 1 :(得分:9)
UITextView没有任何在用户点击返回键时将被调用的方法。
即便如此,如果你想这样做,也要实现UITextViewDelegate的textView:shouldChangeTextInRange:replacementText:方法,并检查替换文本是否为\ n,隐藏键盘。
可能还有其他方法,但我不知道。
确保声明对UITextViewDelegate协议的支持。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
我希望它会有很大的帮助。
答案 2 :(得分:1)
使用下一个方法在UIViewController上创建类别
- (void)hideKeyboard
{
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
to:nil
from:nil
forEvent:nil];
}