关闭键盘的iPhone应用程序中的完成键(使用UITextView)

时间:2011-01-15 20:25:00

标签: iphone objective-c keyboard-layout

我正在使用iPhone应用程序,在用户正在输入UITextView的iPhone应用程序中。 我想知道如何在键盘上添加完成键而不是正常的返回键,当你点击该键时,键盘会关闭。

谢谢!

3 个答案:

答案 0 :(得分:33)

-textViewShouldReturn:协议中没有UITextViewDelegate方法。如果你想让return(done)键关闭键盘,最好使用UITextField,UITextView用于编辑多行文本(所以你需要一种方法来输入换行符)。

如果你真的想在点击UITextView中的返回键时关闭键盘,你可能会这样做:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
  if ([text isEqual:@"\n"]) {
    [textView resignFirstResponder];
    return NO;
  }
  return YES;
}

答案 1 :(得分:-3)

这很简单:

textField.returnKeyType=UIReturnKeyDone;

将其添加到文本字段的委托中,以便在按下键盘时删除键盘:

- (BOOL)textFieldShouldReturn:(UITextField *)aTextfield {
    [aTextfield resignFirstResponder];
    return YES;
}

答案 2 :(得分:-5)

除了设置:

textField.returnKeyType = UIReturnKeyDone;

您需要将文本字段的委托设置为您的类,并执行以下操作:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];

    return YES;
}

此设置returnKeyType也可以从Interface Builder完成 - 如果您在XIB中定义了UI。另一方面,-resignFirstResponder将确保键盘消失。它应该在-textFieldShouldReturn:delegate方法中完成,因为当用户点击完成按钮时会调用它。

希望这有帮助。