我有一个使用UISearchBar和的iPhone应用程序UISearchDisplayController.搜索栏有三个范围按钮.我希望键盘在选择特定范围按钮时成为数字键盘,但在选择任何其他范围按钮时成为默认键盘.
我已经实现了UISearchBarDelegate selectedScopeButtonIndexDidChange:selectedScope如下方法:
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
switch (selectedScope) {
case DeviceIDScopeIndex:
searchBar.keyboardType = UIKeyboardTypeNumberPad;
break;
default:
searchBar.keyboardType = UIKeyboardTypeDefault;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道该方法被调用,并且当选择了相关按钮时会触发正确的情况.但屏幕键盘不会改变,除非我点击取消按钮隐藏键盘,然后再次点击搜索字段再次调出键盘.
有没有办法让键盘在屏幕上改变自己,或以编程方式隐藏它然后重新显示它?
根据这个问题,我们可以在iOS中更改任何UITextField的键盘外观可以将警报键盘用于iOS上的任何文本字段吗?
但是UISearchBar怎么样?有没有办法,因为[searchBarInstance setKeyboardAppearance:UIKeyboardAppearanceAlert];不起作用,因为UISearchBar缺乏这种方法.