iOS 7在导航栏中未显示搜索栏的取消按钮

弯头

在应该在iOS 6和iOS 7上运行的应用程序中,如果该应用程序在iOS 7上运行,则不再显示嵌入在导航栏中的搜索栏的“取消”按钮。在iOS 6上,它可以工作。

搜索栏位于导航栏的标题视图中,如果搜索栏成为第一响应者,则应显示“取消”按钮:

IOS 7

在此处输入图片说明

iOS 6

在此处输入图片说明

在一个隔离的测试用例中,代码非常简单:

@interface MyViewController : UITableViewController<UISearchBarDelegate>

@property (nonatomic) IBOutlet UISearchBar* searchBar;

@end


@implementation MyViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationItem.titleView = self.searchBar;
}

- (void) searchBarTextDidBeginEditing: (UISearchBar*) searchBar {
    [searchBar setShowsCancelButton: YES animated: YES];
}

@end

这是我在文档中错过的iOS 7中的故意更改吗?如果是,应该怎么做?

如果不是,我在代码中犯了一个错误吗?

山姆·斯宾塞

看来您所做的一切都正确,但是显然Apple已在iOS 7中进行了一些更改。根据iOS 7中的SO问题,“取消”按钮未出现在的UISearchBar嵌入式按钮中UINavigationBar

根据开发人员文档,该showsCancelButton属性的作用可能与setShowsCancelButton:Animated方法略有不同尝试这样做:

searchBar.showsCancelButton = YES;
[searchBar setShowsCancelButton:YES animated:YES];

我不确定这是否会产生影响。您也可以尝试将代码放在其他委托方法中:

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar; // return NO to not become first responder
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar; // called when text starts editing

您可能还想签出iOS 7 changelog好像Apple改变了行为,或将UISearchDisplayController/UISearchBar添加到时更改了/ UINavigationBar看一下UIKit部分下的最后一个要点(尽管不清楚到底是什么更改了)。


您可能还想尝试使用UISerachDisplayController甚至更容易的是将嵌入到UISearchBar的标头中UITableView

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS 7在导航栏中没有显示搜索栏的取消按钮

来自分类Dev

在iOS 8的导航栏中显示搜索栏

来自分类Dev

iOS 7搜索栏-取消按钮不起作用

来自分类Dev

iOS 7搜索栏-取消按钮不起作用

来自分类Dev

导航栏中的iOS搜索栏

来自分类Dev

像苹果的日历应用程序一样,如何在导航栏(iOS 7)中显示/隐藏搜索栏?

来自分类Dev

像苹果的日历应用程序一样,如何在导航栏(iOS 7)中显示/隐藏搜索栏?

来自分类Dev

在iOS-7中按需隐藏和显示左导航栏按钮

来自分类Dev

导航下方显示的iOS搜索栏

来自分类Dev

在iOS中取消导航栏操作

来自分类Dev

如何在iOS 7中禁用向右导航栏按钮?

来自分类Dev

如何在iOS 7中禁用向右导航栏按钮?

来自分类Dev

导航栏未显示iOS Swift

来自分类常见问题

在导航栏中显示搜索栏,而无需在iOS 11上滚动

来自分类Dev

iOS:合并范围栏在导航栏中显示搜索栏时隐藏

来自分类Dev

如何提高iOS 7中工具栏和导航栏上的按钮的点击能力

来自分类Dev

iOS:更改导航栏中的图像栏按钮

来自分类Dev

搜索栏-导航栏中的“取消”按钮

来自分类Dev

iOS8无法在UISearchController中的搜索栏上隐藏取消按钮

来自分类Dev

iOS 7导航栏SKStoreProductViewController

来自分类Dev

iOS工具栏未显示导航控制器

来自分类Dev

导航栏未显示在iOS Web视图上

来自分类Dev

按下取消按钮时,IOS 7 UISearchBar搜索图标未居中显示

来自分类Dev

iOS 7 UIViewController(带有导航栏)未插入UIScrollView

来自分类Dev

有什么方法可以在iOS 7中显示UIImagePickerController(源类型为UIImagePickerControllerSourceTypeCamera)的导航栏?

来自分类Dev

iOS 7:显示来自搜索栏的弹出框

来自分类Dev

无法使用搜索栏显示颜色iOS7设置搜索栏

来自分类Dev

iOS 6中的导航栏看起来像iOS 7中的栏

来自分类Dev

iOS 6中的导航栏看起来像iOS 7中的栏

Related 相关文章

  1. 1

    iOS 7在导航栏中没有显示搜索栏的取消按钮

  2. 2

    在iOS 8的导航栏中显示搜索栏

  3. 3

    iOS 7搜索栏-取消按钮不起作用

  4. 4

    iOS 7搜索栏-取消按钮不起作用

  5. 5

    导航栏中的iOS搜索栏

  6. 6

    像苹果的日历应用程序一样,如何在导航栏(iOS 7)中显示/隐藏搜索栏?

  7. 7

    像苹果的日历应用程序一样,如何在导航栏(iOS 7)中显示/隐藏搜索栏?

  8. 8

    在iOS-7中按需隐藏和显示左导航栏按钮

  9. 9

    导航下方显示的iOS搜索栏

  10. 10

    在iOS中取消导航栏操作

  11. 11

    如何在iOS 7中禁用向右导航栏按钮?

  12. 12

    如何在iOS 7中禁用向右导航栏按钮?

  13. 13

    导航栏未显示iOS Swift

  14. 14

    在导航栏中显示搜索栏,而无需在iOS 11上滚动

  15. 15

    iOS:合并范围栏在导航栏中显示搜索栏时隐藏

  16. 16

    如何提高iOS 7中工具栏和导航栏上的按钮的点击能力

  17. 17

    iOS:更改导航栏中的图像栏按钮

  18. 18

    搜索栏-导航栏中的“取消”按钮

  19. 19

    iOS8无法在UISearchController中的搜索栏上隐藏取消按钮

  20. 20

    iOS 7导航栏SKStoreProductViewController

  21. 21

    iOS工具栏未显示导航控制器

  22. 22

    导航栏未显示在iOS Web视图上

  23. 23

    按下取消按钮时,IOS 7 UISearchBar搜索图标未居中显示

  24. 24

    iOS 7 UIViewController(带有导航栏)未插入UIScrollView

  25. 25

    有什么方法可以在iOS 7中显示UIImagePickerController(源类型为UIImagePickerControllerSourceTypeCamera)的导航栏?

  26. 26

    iOS 7:显示来自搜索栏的弹出框

  27. 27

    无法使用搜索栏显示颜色iOS7设置搜索栏

  28. 28

    iOS 6中的导航栏看起来像iOS 7中的栏

  29. 29

    iOS 6中的导航栏看起来像iOS 7中的栏

热门标签

归档