Iphone 使用堆叠的UI按钮
嘿,伙计们,我的视图中有一个搜索栏,下面有很多按钮。因此,当点击搜索栏时,会弹出一个键盘,但我希望用户能够单击搜索栏下方和键盘上方的任何位置,以退出搜索模式。我已经搜索了一段时间,发现了一个解决方案,建议我创建一个不可见的按钮来截取触摸事件,我可以用它从搜索栏中退出第一响应者状态。我只需要在不需要的时候隐藏/禁用按钮,这样下面的按钮就可以点击了?错Iphone 使用堆叠的UI按钮,iphone,objective-c,cocoa-touch,uibutton,touch-event,Iphone,Objective C,Cocoa Touch,Uibutton,Touch Event,嘿,伙计们,我的视图中有一个搜索栏,下面有很多按钮。因此,当点击搜索栏时,会弹出一个键盘,但我希望用户能够单击搜索栏下方和键盘上方的任何位置,以退出搜索模式。我已经搜索了一段时间,发现了一个解决方案,建议我创建一个不可见的按钮来截取触摸事件,我可以用它从搜索栏中退出第一响应者状态。我只需要在不需要的时候隐藏/禁用按钮,这样下面的按钮就可以点击了?错setHidden或setEnabled:都不起作用。以下是相关代码: //touch event on button outsideSearchBa
setHidden
或setEnabled:
都不起作用。以下是相关代码:
//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文件将按钮设置为禁用或隐藏对我没有任何帮助。该按钮不存在(我无法在搜索栏和键盘之间单击并使键盘消失)或始终存在(我无法单击此不可见按钮下方的任何按钮)。谢谢你的帮助。提前谢谢 转到界面生成器,选择要在搜索过程中移除键盘的按钮,然后从上面的菜单中选择布局并选择“发送到背面”。然后在inspector窗口中将按钮样式设置为“自定义”
希望这对您有所帮助……转到界面生成器,选择要在搜索过程中删除键盘的按钮,然后从上面的菜单中选择布局并选择“发送到后面”。然后在inspector窗口中将按钮样式设置为“自定义”
//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;
}
希望这能帮助你
//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;
}
这样做
这样做 是的,这就成功了,显然我的旧代码也很有效。。。我意识到我愚蠢地没有将我的不可见按钮连接到IBOutlet变量outsideSearchBarButton,因此修改按钮的代码没有做任何事情。所以我的旧代码确实有效,但是我觉得这是一个更优雅的解决方案,这就是为什么我把它标记为答案。是的,这就成功了,显然我的旧代码也有效。。。我意识到我愚蠢地没有将我的不可见按钮连接到IBOutlet变量outsideSearchBarButton,因此修改按钮的代码没有做任何事情。因此,我的旧代码确实有效,但我觉得这是一个更优雅的解决方案,这就是为什么我将此标记为答案。+rep用于描述我必须选择按钮样式自定义,我已经知道,但我认为这对其他人可能有用。+rep用于描述我必须选择按钮样式自定义,我已经知道这一点,但我认为这对其他人是有用的。