[英]UITextInputTraits is not working in ios7
我是ios新手。 我有以下代码来更改要加入的键盘的回车键类型。 它在ios6中工作正常,但在ios7中工作不正常。 if块中的代码永远不会在ios7上执行。
有没有人看到过类似的问题? 有什么解决方法吗?
if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) {
[searchBar resignFirstResponder];
[(UITextField *)searchBarSubview setReturnKeyType:UIReturnKeyJoin];
[searchBar becomeFirstResponder];
}
我在Google上搜索后发现,由于不应该修改的UISearchBar的内部结构已更改,因此未显示“加入”按钮。 我不知道如何解决这个问题,在哪里可以找到发生了什么变化,任何人都可以解释吗?
还尝试了以下(类似方式)解决方法代码不够幸运
for(UIView *searchBarSubview in [searchBar subviews]) {
if([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) {
[(UITextField *)searchBarSubview setReturnKeyType: UIReturnKeyJoin];
} else {
for(UIView *subSubView in [searchBarSubview subviews]) {
if([subSubView conformsToProtocol:@protocol(UITextInputTraits)]) {
[(UITextField *)subSubView setReturnKeyType: UIReturnKeyJoin];
}
}
}
尝试这个 :
UITextField *searchBarTextField ;
NSArray *views = ([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0f) ?
self.searchBar.subviews : [[self.searchBar.subviews
objectAtIndex:0] subviews];
for (UIView *subview in views)
{
if ([subview isKindOfClass:[UITextField class]])
{
searchBarTextField = (UITextField *)subview;
break;
}
}
searchBarTextField.returnKeyType = UIReturnKeyJoin;
try this for get textfield from searchbar
for (UIView *subView in self.searchBar.subviews){
for (UIView *searchView in subView.subviews){
if ([searchView isKindOfClass:[UITextField class]])
{
[(UITextField *)searchView setKeyboardAppearance:UIKeyboardAppearanceAlert];
[(UITextField *)searchView setEnablesReturnKeyAutomatically:NO];
break;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.