我在 Interface Builder 中创建了一个文本字段。我将它的“返回键”设置为完成。这是仅一行的输入(因此不需要多行)。
当用户点击完成按钮时如何隐藏虚拟键盘?
实现委托方法UITextFieldDelegate
,然后:
- (void)viewDidLoad {
[super viewDidLoad];
self.yourIBtextField.delegate = self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
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;
}
使用 next 方法在 UIViewController 上创建类别
- (void)hideKeyboard
{
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
to:nil
from:nil
forEvent:nil];
}