2

ユーザーが検索テキストフィールドをタップしたときに、キーボードの色を黒に変更したい。

私はそれを達成しようとしていました UITextField *textField = [UITextField appearance]; [textField setKeyboardAppearance:UIKeyboardAppearanceAlert];

しかし、私のビルドはこのメッセージで失敗します

キャッチされない例外 'NSInvalidArgumentException'、理由: '-[UISearchBarTextField _UIAppearance_setKeyboardAppearance:]: 認識されないセレクターがインスタンス 0x8485260 に送信されたため、アプリを終了しています'

それを手伝ってくれませんか?どうもありがとう

4

2 に答える 2

4

このコードを使用...

    for(UIView *searchTextfield in yourSearchBar.subviews)
    {
        if([searchTextfield isKindOfClass: [UITextField class]]){
            [(UITextField *)searchTextfield setKeyboardAppearance: UIKeyboardAppearanceAlert];
        }
    }

ボタンを置き換える私の別の答えと同じです Image see.. image-for-cancel-button-of-uisearchbar

于 2013-04-29T09:19:52.507 に答える
1

Paras Joshiの回答とiOS7/8のアップデートに賛成票を投じてください。UIView はもう 1 つのレイヤーにラップされているため、もう一度反復する必要があります。

 for(UIView *searchTextfield in self.searchBar.subviews)
    {
        for(UIView *searchTextfield2 in searchTextfield.subviews) {
            if([searchTextfield2 isKindOfClass: [UITextField class]]){
                [(UITextField *)searchTextfield2 setKeyboardAppearance: UIKeyboardAppearanceDark];
            }
        }


    }

標準免責事項。これはAppleによって「公式に」眉をひそめていますが、パブリックAPIを使用してUIViewを単純に反復しているため、「技術的に」問題ありません。

于 2014-12-05T22:44:29.110 に答える