Ios 如何使用SearchDisplayController';什么是键盘?

Ios 如何使用SearchDisplayController';什么是键盘?,ios,uisearchdisplaycontroller,Ios,Uisearchdisplaycontroller,我正在尝试创建一个iPad应用程序,它有两个UIViews(比如UISplitView)。“主”端有UISearchDisplayController 我需要通过点击键盘的外侧(无论是“主”侧还是“细节”侧)来关闭键盘。现在,我只能通过点击键盘上的“关闭”按钮或点击UISearchDisplayController关闭键盘 在rmaddy的帮助下解决: @interface MyViewController : UIViewController <UIGestureRecognizerDe

我正在尝试创建一个iPad应用程序,它有两个
UIView
s(比如
UISplitView
)。“主”端有
UISearchDisplayController

我需要通过点击键盘的外侧(无论是“主”侧还是“细节”侧)来关闭键盘。现在,我只能通过点击键盘上的“关闭”按钮或点击
UISearchDisplayController
关闭键盘

在rmaddy的帮助下解决

@interface MyViewController : UIViewController <UIGestureRecognizerDelegate>
...
...
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)];
tapGesture.delegate = self;
[self.view addGestureRecognizer:tapGesture];
...
...
- (void)dismissKeyboard:(UITapGestureRecognizer *)sender
{
    if (sender.state == UIGestureRecognizerStateEnded) {
        self.searchDisplayController.active = NO;
    }
}
@接口MyViewController:UIViewController
...
...
UITapGestureRecognizer*点击手势=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(dismissKeyboard:)];
tappostate.delegate=self;
[self.view addgesturecognizer:tappership];
...
...
-(无效)解除键盘:(UITapgestureRecognitor*)发送方
{
if(sender.state==UIGestureRecognitizerStateEnded){
self.searchDisplayController.active=否;
}
}

将搜索控制器的
active
属性设置为
NO
以关闭它。谢谢,但我怎么知道“在外部被点击”?您可以在其他视图中添加点击手势识别器。@rmaddy谢谢!作品您的
键盘
每次点击都会被调用多次。您应该向该方法添加一个参数(UITapGestureRecognitizer)并检查手势的状态。仅当
状态
UIgestureRecognitizerStateEnded
时才对手势进行操作。有关详细信息,请参阅
UITapgestureRecognitizer
的文档。