2011-01-15 14 views

答えて

33

UITextViewDelegateプロトコルには-textViewShouldReturn:メソッドがありません。キーボードを閉じるために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; 
} 
+0

ありがとう!私がTextViewを使用する必要があったのは、私が取り組んでいるアプリがTwitter APIだからです。そして、ユーザーが投稿する前にツイートを読んでみたいのであれば、それはユーザーのためにちょっと混乱します。 – Tapy

-3

それは同じくらい簡単です:それは押されていますとき、キーボードを削除するには、あなたのテキストフィールドのデリゲートにこれを追加

textField.returnKeyType=UIReturnKeyDone; 

設定に加えて
- (BOOL)textFieldShouldReturn:(UITextField *)aTextfield { 
    [aTextfield resignFirstResponder]; 
    return YES; 
} 
+0

うんのが、それはキーボードを閉じません。 – Tapy

+0

申し訳ありません。私の答えにそれを加えました。 – grahamparks

+10

私はUITextFieldではなくUITextFieldを参照していたと思います。 –

-5

textField.returnKeyType = UIReturnKeyDone; 

あなたのクラスにテキストフィールドのデリゲートを設定し、次のような何かをする必要があります:

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

    return YES; 
} 

XIBでUIを定義している場合、returnKeyTypeをInterface Builderから設定することもできます。一方、-resignFirstResponderは、キーボードが消えることを確認します。これは、ユーザーが完了ボタンをタップしたときに呼び出されるため、-textFieldShouldReturn:delegateメソッドで行う必要があります。

これが役に立ちます。

+1

彼はUITextFieldではなくUITextViewを要求します。 – Domness

+1

また、質問に答えることはできません..質問はUITextViewについてです。 –

関連する問題