【问题标题】:UITextInputTraits is not working in ios7UITextInput Traits 在 ios 7 中不起作用
【发布时间】: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];
    }
}      
} 

【问题讨论】:

标签: ios iphone ios7 uisearchbar uitextinput


【解决方案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;
                }
        }
    }

【讨论】:

    猜你喜欢
    • 2013-10-19
    • 2013-09-16
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多