如何在按下“完成/返回”按钮时隐藏文本框键盘Xcode 4.2

时间:2012-06-09 23:35:33

标签: iphone ios xcode4.2

我在Interface Builder中创建了一个文本字段。我将它的“返回键”设置为完成。这是一行输入(所以它不需要多行)。

当用户点击完成按钮时,如何隐藏虚拟键盘?

3 个答案:

答案 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];
}