1

私のアプリには、連絡先のリスト (ネイティブの連絡先から iPad に読み込まれます) とバディ チャットのリストがあります。友達を連絡先に追加し、検索バーをクリックして連絡先を検索すると、キーパッドが表示されます。問題は、キーパッドの検索ボタンをクリックする (または検索バーでキャンセルする) と、以下の関数が呼び出されてもキーパッドが閉じないことです。

-(void)searchBarSearchButtonClicked:(UISearchBar *)sBar
{
 [searchBar resignFirstResponder];
}

そして、私は[self.view endEditing:YES];それも仕事ではないと呼んでいます。そして、アプリに別のボタンをタッチしてポップオーバーを表示すると、キーパッドも閉じられません->フォローコードが機能しないことを意味します[[[UIApplication sharedApplication] keyWindow] endEditing:YES];友達を連絡先に追加しようとしていない場合、ボタンをクリックしてポップオーバーを表示すると、キーパッドは自動的に閉じます。または、検索ボタンをクリックすると、キーパッドはスムーズに閉じます。

キーパッドを強制的に閉じる方法は?

4

3 に答える 3

1
 //try this
 - (void)searchBarSearchButtonClicked:(UISearchBar *)sBar
 {
      [sBar resignFirstResponder];
 }
于 2013-10-25T04:45:55.320 に答える
0

3 ステップ イン カウントを取る

1) テキストフィールドのデリゲートを設定する

2) 特定のテキストフィールド yourtextfielg.delegate=self のデリゲートを設定します。

3) その特定の textField [txt rejectFirstResponder] を辞任します。

于 2013-10-25T05:16:56.277 に答える
0

解決策は次のとおりです。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
    [self.view addGestureRecognizer:tap];
}

キーボードを閉じるには、ファーストレスポンダーのステータスを辞任する UI フィールドが必要です。

- (void)dismissKeyboard
{
   [searchBar resignFirstResponder]; //It might not work

また

[field resignFirstResponder]; //it will surely work
}
于 2013-10-25T08:08:44.867 に答える