1

私のアプリでは、バックグラウンド(NSOperationQueue)で検索を行い、完了したらメインキューのUITableViewに結果を表示しますが、UIKeyboardTypeは常にリセットされます。

ユーザーが変更した現在のUIKeyboardTypeを取得するにはどうすればよいですか?

検索の前にタイプを変数に格納しようとしましたが、検索を実行しているtextFieldは、表示されている実際のキーボードのタイプではなく、デフォルトで設定されているUIKeyboardTypeを返します。

4

2 に答える 2

1

これが私の問題を解決するために私がしたことです。検索フィールドに最後に入力した文字を確認し、それに基づいてUIKeyboardTypeを決定しました。

if ([searchText length]>0) {
        NSRange nond = [[searchText substringFromIndex:[searchText length]-1] rangeOfCharacterFromSet:[[NSCharacterSet lowercaseLetterCharacterSet] invertedSet]];
        if (NSNotFound == nond.location) {
            self.currentKeyboardType = UIKeyboardTypeDefault;
        } else {
            self.currentKeyboardType = UIKeyboardTypeNumberPad;
        }
    }

次に、検索が完了した後、UIKeyboardTypeをこの値に設定します。デフォルトでは、アプリはUISearchBarテキストフィールドに設定したデフォルトのキーボードに基づいてキーボードを元に戻していたようです。これは私にとってうまく機能しています。

于 2013-02-22T12:38:20.960 に答える
0

textField.keyboardTypetextFieldのキーボードのタイプを使用して取得できます...

于 2013-02-21T15:33:31.277 に答える