0

私はテキストフィールド検索のように作成しました。

最初にテキストフィールドを作成し、新しいUISearchViewControllerを追加しました

今私は設定しました

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
        [textField resignFirstResponder];
    self.searchDisplayController.searchBar.hidden = FALSE;
    [self.searchDisplayController.searchBar becomeFirstResponder];
    [self.searchDisplayController setActive:YES animated:NO];
}

しかし、私は検索ディスプレイコントローラーとキーボードなしの黒い背景しか見ていません

検索バーを直接押すと、キーボードが表示されます

上記のメソッドからUISearchBarControllerでキーボードを表示するにはどうすればよいですか

編集

ここから私のコードをダウンロードしてくださいhttp://sourceforge.net/projects/locationdemo/files/LocationDemo.zip/download

4

2 に答える 2

0

この行は問題を引き起こします:

[textField resignFirstResponder];

なぜそこにあるのですか。キーボードを表示したい場合。この時点では、これを呼び出すべきではありません。それはキーボードを閉じるか非表示にしますか?

さて、あなたは[textFieldbecomeFirstResponder]をどこと呼びますか?

独自に作成するのではなく、このUISearchBarを使用することもできます。

于 2012-07-04T17:37:57.920 に答える
0

最後に、みんなと共有したい私の答えがあります

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
        [textField resignFirstResponder];
        NSTimer *theTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(keyboardWasShown:) userInfo:nil repeats:NO];
}

- (void)keyboardWasShown:(NSNotification *)notification
{
    [self.searchDisplayController.searchBar becomeFirstResponder];
    self.searchDisplayController.searchBar.hidden = FALSE;
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
    CGRect aRect = self.view.frame;
    aRect.size.height -= keyboardSize.height;
}
于 2012-07-05T16:26:31.830 に答える