これが私の問題を解決するために私がしたことです。検索フィールドに最後に入力した文字を確認し、それに基づいて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テキストフィールドに設定したデフォルトのキーボードに基づいてキーボードを元に戻していたようです。これは私にとってうまく機能しています。