14

我正在开发一个 iPhone 应用程序,并且在 iPhone 应用程序中,用户正在输入 UITextView。我想知道如何在键盘上添加完成键而不是正常的返回键,当您单击该键时,键盘会关闭。

谢谢!

4

3 回答 3

33

协议中没有-textViewShouldReturn:方法。UITextViewDelegate如果您希望返回(完成)键关闭键盘,最好使用 UITextField 代替,UITextView用于编辑多行文本(因此您需要一种输入换行符的方法)。

如果您真的想在 a 中按回车键时关闭键盘UITextView,您可以执行以下操作:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
  if ([text isEqual:@"\n"]) {
    [textView resignFirstResponder];
    return NO;
  }
  return YES;
}
于 2011-01-15T21:19:43.250 回答
-3

它很简单:

textField.returnKeyType=UIReturnKeyDone;

将此添加到您的文本字段的委托以在按下键盘时移除键盘:

- (BOOL)textFieldShouldReturn:(UITextField *)aTextfield {
    [aTextfield resignFirstResponder];
    return YES;
}
于 2011-01-15T20:49:02.210 回答
-5

除了设置:

textField.returnKeyType = UIReturnKeyDone;

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

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

    return YES;
}

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

希望这可以帮助。

于 2011-01-15T20:57:21.107 回答