我试图将 UIsearchBar 添加到我的导航控制器。我也希望使用 UISearchBar 的取消按钮。
UISearchBar* searchBar = [[UISearchBar alloc] init];
searchBar.frame = CGRectMake(0, 0, 300, searchBar.frame.size.height);
searchBar.translucent = NO;
searchBar.barStyle = UIBarStyleBlack;
searchBar.delegate = self;
UIView* myView = [[UIView alloc] initWithFrame:searchBar.frame];
[myView addSubview:searchBar];
UIBarButtonItem* sbItem = [[UIBarButtonItem alloc] initWithCustomView:myView];
[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:chart,sbItem,nil]];
searchBar 处于非活动状态的麻烦。它出现在导航控制器中。但是当我点击它时,它不会以任何方式响应。如果我显示取消按钮,它会出现但也无法点击。
如果我不将 UIsearchBar 包装在 UIView 上,它可以正常工作,除非它不想向我显示取消按钮。
UPD 如果我打电话
[searchBar becomeFirstResponder]
它进入编辑模式并向我显示一个取消按钮和键盘,但看起来像其中 searchBar 包裹的视图更改了它的框架参数并从其原始外观向下 10 像素。并将其背景从 trnsparent 更改为 blackopaque
看起来像是某种巫毒教……这么简单的动作要花这么多时间……