と を使用する iPhone アプリがUISearchBar
ありUISearchDisplayController
ます。検索バーには 3 つのスコープ ボタンがあります。特定のスコープ ボタンが選択されているときはキーボードをテンキーパッドにして、他のスコープ ボタンが選択されているときはデフォルトのキーボードにしたいと考えています。
私は次のようにメソッドを実装しましたUISearchBarDelegate
selectedScopeButtonIndexDidChange:selectedScope
:
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
switch (selectedScope) {
case DeviceIDScopeIndex:
searchBar.keyboardType = UIKeyboardTypeNumberPad;
break;
default:
searchBar.keyboardType = UIKeyboardTypeDefault;
break;
}
}
メソッドが呼び出され、問題のボタンが選択されたときに適切なケースがトリガーされることはわかっています。しかし、キャンセルボタンをタップしてキーボードを非表示にし、検索フィールドをもう一度タップしてキーボードを再び表示しない限り、オンスクリーンキーボードは変更されません。
キーボードが画面に表示されている間にキーボードを変更する方法、またはプログラムで非表示にしてから再表示する方法はありますか?