Ios 调用`[UISearchBar setReturnKeyType:]时无法识别选择器`
在我们的应用程序中,iOS 7.0、7.0.4和7.0.6用户开始出现以下错误:Ios 调用`[UISearchBar setReturnKeyType:]时无法识别选择器`,ios,selector,uisearchbar,Ios,Selector,Uisearchbar,在我们的应用程序中,iOS 7.0、7.0.4和7.0.6用户开始出现以下错误: -[UISearchBar setReturnKeyType:]:无法识别的选择器发送到实例0x178a7920 我们花了一点时间才弄清楚到底发生了什么,因为Xcode 6.4不再支持7.0、7.0.4和7.0.6模拟器。解释如下。我们从UISearchBar.h中的文档中了解到: …iSearchBar正式符合iOS 8.0中的uitraits,并私下符合iOS 7.0中的要求 因此,8.x版本对uits有公共/
-[UISearchBar setReturnKeyType:]:无法识别的选择器发送到实例0x178a7920
我们花了一点时间才弄清楚到底发生了什么,因为Xcode 6.4不再支持7.0、7.0.4和7.0.6模拟器。解释如下。我们从
UISearchBar.h
中的文档中了解到:
…iSearchBar正式符合iOS 8.0中的uitraits
,并私下符合iOS 7.0中的要求
因此,8.x版本对uits有公共/完全支持,但7.x版本的iOS只对uits有私有/可能部分支持
我们开始使用不同的iOS 7.x版本,发现那些等于或大于iOS 7.1的版本确实支持setReturnKeyType:
,而早期版本则不支持
它似乎在iOS 7的早期版本中使用过(参见链接中第二个最流行的答案),这似乎验证了我们的结论
因此,对于iOS 7.x版本,我们最终使用的是:
if ([searchBar respondsToSelector:@selector(setReturnKeyType:)]) {
searchBar.returnKeyType = UIReturnKeyDone; // Pick a type
} else {
// Call the method from the linked answer above for iOS < 7.1
// or leave the return key type unchanged.
}
if([searchBar respondsToSelector:@selector(setReturnKeyType:)])){
searchBar.returnKeyType=UIReturnKeyDone;//选择一个类型
}否则{
//对于iOS<7.1,从上面的链接答案调用该方法
//或者保持返回键类型不变。
}
但“私下一致”仍然一致。随后的一句话“7.0之前,UISearchBar只实现了以下四个特性:autocapitalizationType、autocorrectionType、spellCheckingType和keyboardType