Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用堆叠的UI按钮_Iphone_Objective C_Cocoa Touch_Uibutton_Touch Event - Fatal编程技术网

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用于描述我必须选择按钮样式自定义,我已经知道这一点,但我认为这对其他人是有用的。