Ios 在单例类中添加手势识别器和动作

Ios 在单例类中添加手势识别器和动作,ios,Ios,我很难用词来表达这个标题,我也不知道这个问题是否是一个好的做法,但我相信这里会有人让我知道 我有一个实用程序类,我正在添加一个类方法,它将隐藏视图控制器上的键盘 在Utilities.m中: + (void) hideKeyboard:(UIViewController*)viewController { //add gesture recognizer UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]

我很难用词来表达这个标题,我也不知道这个问题是否是一个好的做法,但我相信这里会有人让我知道

我有一个实用程序类,我正在添加一个类方法,它将隐藏视图控制器上的键盘

在Utilities.m中:

+ (void) hideKeyboard:(UIViewController*)viewController
{
    //add gesture recognizer
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
        initWithTarget:viewController action:@selector(dismissKeyboard)];
    [viewController.view addGestureRecognizer:tap]; 
}

- (void)dismissKeyboard
{
    //resign first responder
    [viewController.view endEditing:YES]; //how can I get the correct VC here?
}
在每个视图控制器中,我都有
[实用程序隐藏板:self]

我不知道如何处理手势识别器的动作

是否有办法将操作设置为视图控制器中的方法?
例:
。。。操作:@选择器(查看\控制器\方法\此处)】

我还尝试设置操作并传递一个参数,以便可以引用当前视图控制器,但我不知道如何在选择器中传递参数。这也不适合单身人士,我不这么认为。
例:
。。。操作:@选择器(键盘:视图\控制器)]//我知道这是错误的,但不知道如何正确执行


那么,是否有可能在实用程序类中创建手势识别器,或者我走错了方向?如果我需要更清楚地解释,请告诉我。

我想你是在问这个问题,但你最好只对viewController进行子类化,并在整个应用程序中使用它。然后你可以直接打电话给[自我解散键盘]

+ (void)dismissKeyboard:(UIViewController*)viewController
{
    //resign first responder
    [viewController.view endEditing:YES]; //how can I get the correct VC here?
}
那就这么说吧

[Utilities dismissKeyboard:self];

你想在独生子女身上做这一切有什么原因吗?还有,你什么时候放下键盘?用于文本输入?(辞职FirstResponder?)以隐藏键盘<代码>[viewController.view endEditing:是]实际上会让第一响应者辞职。(我不知道细节)