2012-01-15 7 views
0

私はiOS 5のストーリーボードで作業していて、UITextFieldという簡単な画面を持っています。私は、ユーザーが "Return"を押すとキーボードを消したいと思う。UITextFieldでキーボードを辞任

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

を、私は、このメソッドが呼び出されないことを確認しかし、私は、そのような私のコントローラがUITextFieldDelegateプロトコルを実装し、次のようにtextFieldShouldReturn:を実装したとして、他の提案を行いました。私はストーリーボードで自分のビューのコントローラーを私のカスタムUIViewControllerに設定しました。

またdismissKeyboardというIBActionという名前の別の実装を作成しましたが、奇妙なことにDid ExitのアクションをUITextFieldに接続できません。

アイデア?

更新:問題は、UITextFieldではなくUITextViewを使用しているようです。テキストを入力するための広い領域が必要でした。入力フィールドをUITextFieldに変更すると正常に動作します。それをUITextViewで動作させる方法に関するアイデアはありますか?

+2

あなたは 'questionField.delegate = self'どこ' self'はあなたコントローラー可能性が設定されたタップのTextViewを使用するためにリターンキーこのデリゲート機能を持っているときは、キーボードが却下したい場合あなたの 'UItextField'を作成しましたか?また、 'textFieldDidEndEditing:'を実装しようとします。このメソッドは、編集セッションが終了するたびに呼び出されます(ユーザーがキーボードを閉じるなど)。 –

答えて

0

dismissメソッドをテキストフィールドのDid End Editingアクションに接続する必要があります。

+0

私はそれをやってみましたが、奇妙なことに、私がアクションを選択したときに「受信したアクション」を選択し、uitextフィールドの上にカーソルを置いても強調表示されません。 – imrank1

0

したがって、UITextViewのキーボードを終了するソリューションは、shouldChangeTextInRangeを実装することです。

0

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 

    if([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 

    return YES; 
} 
+0

このコードでは、2段落のテキストを貼り付けるとデータは貼り付けられません –

関連する問題