0

嘿伙计们,所以我在我的视图中有这个搜索栏以及它下面的许多按钮。因此,当点击搜索栏时,会弹出一个键盘,但是我希望用户能够单击搜索栏下方和键盘上方的任意位置以退出搜索模式。我一直在搜寻 SO 并遇到了一个解决方案,该解决方案建议我创建一个不可见的按钮来拦截触摸事件,我可以使用该按钮从搜索栏中退出第一响应者状态。当我不需要它时,我只能隐藏/禁用按钮,以便可以点击它下面的按钮对吗?错误的。setHiddensetEnabled:没有做的伎俩。以下是相关代码:

//touch event on button outsideSearchBarButton which is invisible
- (IBAction)selectOutsideSearchBar:(id)sender {
    NSLog(@"Selected outside search bar");
    [searchBar resignFirstResponder];
    [outsideSearchBarButton setEnabled:NO];
    [outsideSearchBarButton setHidden:YES];
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
    NSLog(@"searchbarTextDidBeginEditing");
    [outsideSearchBarButton setHidden:NO];
    [outsideSearchBarButton setEnabled:YES];
}

通过 nib 文件将按钮设置为禁用或隐藏对我没有任何帮助。该按钮永远不存在(我无法在搜索栏和键盘之间单击并让键盘消失)或始终存在(我无法单击此不可见按钮下方的任何按钮)。任何帮助表示赞赏。提前致谢!

4

2 回答 2

2
//touch event on button outsideSearchBarButton which is invisible
- (IBAction)selectOutsideSearchBar:(id)sender {
    NSLog(@"Selected outside search bar");
    [searchBar resignFirstResponder];
    outsideSearchBarButton.userInteractionEnabled = NO;
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
    NSLog(@"searchbarTextDidBeginEditing");
    outsideSearchBarButton.userInteractionEnabled = YES;
}

做这个。

于 2011-05-18T05:28:09.920 回答
1

转到界面生成器并在搜索期间选择要移除键盘的按钮,然后从上面的菜单中选择布局并选择发送到后面。然后在检查器窗口中将按钮样式设置为自定义。

希望这对你有帮助.......

于 2011-05-18T05:26:34.223 回答