14

私はiPhoneアプリに取り組んでおり、iPhoneアプリではユーザーがUITextViewに入力しています。通常のリターンキーの代わりに完了キーをキーボードに追加するにはどうすればよいかと思っていましたが、そのキーをクリックするとキーボードが閉じます。

ありがとう!

4

3 に答える 3

33

プロトコル-textViewShouldReturn:にメソッドはありません。UITextViewDelegatereturn(done)キーでキーボードを閉じたい場合は、代わりにUITextFieldを使用するのがおそらく最善であり、UITextView複数行のテキストを編集することを目的としています(したがって、改行を入力する方法が必要です)。

でリターンキーを押したときに本当にキーボードを閉じたい場合は、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 からも実行できます (UI が XIB で定義されている場合)。一方、 -resignFirstResponder は、キーボードが確実に消えるようにします。-textFieldShouldReturn: デリゲート メソッドで実行する必要があります。これは、ユーザーが [完了] ボタンをタップしたときに呼び出されるためです。

お役に立てれば。

于 2011-01-15T20:57:21.107 に答える