UINavigationController 中的 UISearchBar,取消按钮不可选

Posted

技术标签:

【中文标题】UINavigationController 中的 UISearchBar,取消按钮不可选【英文标题】:UISearchBar in UINavigationController with cancel button not selectable 【发布时间】:2011-10-06 19:39:53 【问题描述】:

我在 UINavigationController 中添加了一个 UISearchBar 就好了,但是一旦我将取消按钮添加到搜索栏,我就无法再通过触摸它来选择它。

我用来创建和添加搜索栏的代码是:

UISearchBar *theSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f,0.0f,320.0f,0.0f)];
theSearchBar.delegate = self;
[theSearchBar setPlaceholder:@"Search iPad"];
[theSearchBar setShowsCancelButton:YES animated:YES];
self.navigationItem.titleView = theSearchBar;
self.navigationItem.titleView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[theSearchBar release];

如果我删除添加取消按钮的行,我可以专注于搜索栏并且搜索正常工作。只要我把那条线放进去,它就可以正常显示,但我不能再专注于它了。

我尝试将它放入一个简单的 UIView 容器中,但这也没有解决问题。

如果添加取消按钮会导致此操作失败怎么办?

更新: 我最终没有使用取消按钮,因为我确定搜索栏的使用方式没有必要。

【问题讨论】:

【参考方案1】:

我肯定会推荐一个 UISearchDisplayController:apple docs. 它有一个内置的取消按钮,通过将其放置在界面构建器中,您可以节省大量代码。更少的代码 = 更少的错误。

【讨论】:

以上是关于UINavigationController 中的 UISearchBar,取消按钮不可选的主要内容,如果未能解决你的问题,请参考以下文章

(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换

UINavigationController 中的常量 UIBarButtonItem

UINavigationController 中的 setAlpha

UINavigationController:调整大小动画中的标题跳转

UIPopoverController 中的 UINavigationController:设置标题

UITabBarController 问题中的 UINavigationController