绘制UISearchBar的框架如下:

UISearchBar *sBar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 280, 40)];

我只是想在用户单击任何区域(而不是上面定义的区域)时关闭键盘。

是否有任何UISearchBar委托方法来执行此操作,或者是一种简单的方法?提前感谢。

最佳答案

您需要处理窗口中其他视图上的单击/触摸事件,然后调用:

if (sBar.isFirstResponder)
    [sBar resignFirstResponder];

sBar将需要是UIViewController的属性

要处理触摸事件,请将它们添加到您的UIViewController中:
  - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
    }

    - (void) touchesMoved:(NESet *)touches withEvent:(UIEvent *)event
    {
    }

    - (void) touchesEnded:(NESet *)touches withEvent:(UIEvent *)event
    {
    }

- (void) touchesCancelled:(NESet *)touches withEvent:(UIEvent *)event
    {
    }

并至少从touchesBegan方法调用[sBar resignFirstResponder]。

10-07 20:28