【发布时间】:2012-06-13 11:42:09
【问题描述】:
我在 Interface Builder 中创建了一个文本字段。我将它的“返回键”设置为完成。这是一个单行输入(因此不需要多行)。
当用户点击完成按钮时如何隐藏虚拟键盘?
【问题讨论】:
我在 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];
}
【讨论】: