UITextInput Traits 在 ios 7 中不起作用
Posted
技术标签:
【中文标题】UITextInput Traits 在 ios 7 中不起作用【英文标题】:UITextInputTraits is not working in ios7 【发布时间】:2013-11-19 07:20:28 【问题描述】:我是 ios 新手。我有以下代码来更改要加入的键盘的返回键类型。它在 ios6 中可以正常工作,但在 ios7 中无法正常工作。 if-block 中的代码永远不会在 ios7 上执行。
有没有人遇到过类似的问题?有什么解决方法吗?
if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)])
[searchBar resignFirstResponder];
[(UITextField *)searchBarSubview setReturnKeyType:UIReturnKeyJoin];
[searchBar becomeFirstResponder];
我用谷歌搜索,发现加入按钮没有显示,因为 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];
【问题讨论】:
github.com/EthanArbuckle/IOS-7-Headers/blob/master/… 看看这个 【参考方案1】:试试这个:
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;
【讨论】:
在 iOS 7.0.3 中对我不起作用。搜索文本字段是 UISearchBarTextField 并且 isKindOfClass 将返回 false【参考方案2】: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;
【讨论】:
以上是关于UITextInput Traits 在 ios 7 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
何时调用 -[UITextInput selectionRectsForRange:]?
错误 C2248:“std::basic_ios<_Elem,_Traits>::basic_ios”:无法访问在类“std::basic_ios<_Elem,_Traits>