Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 调用`[UISearchBar setReturnKeyType:]时无法识别选择器`_Ios_Selector_Uisearchbar - Fatal编程技术网

Ios 调用`[UISearchBar setReturnKeyType:]时无法识别选择器`

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有公共/

在我们的应用程序中,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有公共/完全支持,但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