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

Tal*_*lon 56 iphone ios xcode4.2

我在Interface Builder中创建了一个Text Field.我将它的"返回键"设置为完成.这是一行输入(因此它不需要多行).

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

Pau*_*ter 155

实现委托方法UITextFieldDelegate,然后:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.yourIBtextField.delegate = self;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

  • 我缺少的部分是将<UITextViewDelegate>添加到*.h文件中的接口.一旦我添加了这个代码,这段代码就没有问题.希望能帮助别人出去! (17认同)
  • 在这种情况下,需要<UITextFieldDelegate>. (7认同)
  • 如果将连接从textField拖到viewController表示,也可以从storyboard(xib)连接委托.这样您就不必从viewDidLoad方法中写入该行. (3认同)

Him*_*dia 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;
}
Run Code Online (Sandbox Code Playgroud)

我希望它会有很大帮助.