9

私はUISearchBar自分のコードで使用しています。そのデリゲートをヘッダーファイルにインポートし、実装ファイルにもいくつかのデリゲートメソッドを実装しました。

をタップするとUISearchBar、テキストを入力するためのキーボードが表示されます。キーボードのリターンキーは「検索」ボタンです。デフォルトでは無効になります。文字を入力すると有効になります。(私は正しいですか?)

ここで問題が発生します。UISearchBarユーザーが少なくとも2文字を入力したときに、キーボードのリターンキーを有効にします。

出来ますか?はいの場合、どうすればそれを行うことができますか?

ありがとう

4

7 に答える 7

9

検索ボタンを無効にすることはできません。あなたができることはUISearchBarDelegate、次のように、クリックされている検索ボタンに対してアクションを実行する必要があるかどうかを判断するためのメソッドを使用することです。

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    if (searchBar.text.length < 2) {
        return;
    }
    else {
        // Do search stuff here
    }
}

このためのAppleドキュメントも非常に便利であり、searchBarの動作をカスタマイズするための優れた出発点です。

于 2012-03-15T14:45:43.603 に答える
1

短い答えはノーです...

より長く、よりハッキーで、よりエキゾチックなものがここにあります: UITextFieldのリターンキーを無効/有効にする方法は?

于 2012-03-15T14:41:27.950 に答える
1

プロパティにアクセスすることでそれを行うことができUISearchBarます。

let textFieldInsideSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.enablesReturnKeyAutomatically = false

プロパティで遊ぶことによりenablesReturnKeyAutomatically、あなたはあなたの要件を達成することができます。

ありがとう。

于 2020-07-09T13:00:30.907 に答える
0

これは私がそれを行う方法です:

    if([searchbar.text length] == 0) {
        [searchBar performSelector: @selector(resignFirstResponder)
                           withObject: nil
                           afterDelay: 0.1];
    }
于 2013-05-02T16:06:04.360 に答える
0

あなたはこれを試すことができます、

 - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope{
       if (searchText.length>=2) {
         [Main_SearchBar resignFirstResponder];

         // Do your code here
       }
}
于 2015-08-31T09:48:35.200 に答える
0

探している設定は次のとおりです。

searchBar.enablesReturnKeyAutomatically = true

于 2021-12-08T08:22:20.353 に答える
-1

あなたはこれを試すことができます

if([self.searchBar.text length] > 2)
{
    [self.searchBar resignFirstResponder];
}
于 2012-03-15T14:25:53.287 に答える