我正在使用以下代码根据UISearchBar
的所选范围按钮更改键盘:
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
if (selectedScope == 0)
{
self.searchDisplayController.searchBar.keyboardType = UIKeyboardTypeDefault;
self.searchDisplayController.searchBar.text = @"";
}
else if (selectedScope == 1)
{
self.searchDisplayController.searchBar.keyboardType = UIKeyboardTypeDecimalPad;
self.searchDisplayController.searchBar.text = @"";
}
[self.searchDisplayController.searchBar reloadInputViews];
}
调用代码,selectedScope值正确更改,但iOS8上的键盘不再更改。应用程序的部署目标设置为iOS7。我已经读过iOS8中不推荐使用UISearchBarController
,那么我如何才能在iOS7和iOS8上使用它?
iOS8 GM,Xcode 6 GM。
更新
如果我改变
[searchBar reloadInputViews];
为:
[searchBar resignFirstResponder];
[searchbar becomeFirstResponder];
它有效。但是,在这种情况下,我在Xcode控制台中收到警告:
“无法找到支持键盘iPhone-Portrait-DecimalPad的8型键盘;使用1425143906_Portrait_iPhone-Simple-Pad_Default”