2011-01-07 3 views
0

何らかの理由により、resignFirstResponderが機能していません。なぜわからないのですか?私はそれをtextFieldDidEndEditingから呼び出そうとしましたが、何も起こりません。 NIBが使用されており、それぞれの代理人がファイルの所有者を指しています。iPhone SDK:resignFirstResponderが機能しない

キーボードを閉じるには何が必要ですか?

ありがとうございました。

+0

使用しているコードを投稿できますか? –

+0

- (void)textFieldDidEndEditing:(UITextField *)textField { [textField resignFirstResponder]; } @interface MultiSalesViewController:ScrollingViewController

答えて

1

テキストフィールドの代理人を設定してください。

myTextField.delegTe = self; 

そして、あなたはあなたのヘッダーで使用されています

<UITextFieldDelegate> 

EDIT:

試してみてください。

if(textField == myTextField){ 
    [textField resignFirstResponder]; 
} 
+0

デリゲートは、IBとviewDidLoadの両方で既に設定されています。また、ビューコントローラは既にUITextFieldDelegateを採用しています。それでもキーボードは却下されません。 –

+0

回答を別の解決策で更新しました。 – WrightsCS

2

-textFieldDidEndEditingを使用しないでください。これは、テキストフィールドがfirstResponderステータスを終了した後に呼び出されます。これは、あなたがそれをフックとして使用しようとしているものです。馬の前にカート、問題の鶏と卵の種類。

リターンキーが押されたときにトリガーを得るには、-textFieldShouldReturnを使用してください(また、return YES;を覚えておいてください)。また、ビューの要素の後ろにクリアなカスタムボタンを浮かべ、すべてのテキストを通過する "バックグラウンドタップ"フィールドを表示し、多くの最初の応答者を辞任します。

2

実際には、テキストフィールドがまったく編集を開始しないように、NOを返す必要があります。そうであれば、最初のレスポンダが設定され、キーボードが再びポップアップします。

関連する問題