【发布时间】:2013-05-20 21:11:50
【问题描述】:
我很难写出标题,我也不知道这个问题是否是一种好的做法,但我相信这里有人会告诉我。
我有一个实用程序类,我正在添加一个将隐藏视图控制器上的键盘的类方法。
在 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?
}
在每个视图控制器中我都有[Utilities hideKeyboard:self];
我不知道如何处理手势识别器的操作。
有没有办法以某种方式将操作设置为视图控制器中的方法?
例如:... action:@selector(VIEW_CONTROLLER_METHOD_HERE)];
我还尝试设置操作并传递参数,以便可以引用当前视图控制器,但我不知道如何在选择器中传递参数。这也不适合单例类,我不认为。
例如:... action:@selector(dismissKeyboard:VIEW_CONTROLLER)]; //I know this is wrong, but don't know how to do it correctly
那么,是否可以在实用程序类中创建手势识别器,还是我走错了方向?如果我需要更清楚地解释任何事情,请告诉我。
【问题讨论】:
-
您是否有理由想在单例中完成所有这些操作?另外,你什么时候放下键盘?对于文本输入? (resignFirstResponder?)
-
为方便起见,我只需要在任何视图控制器中调用
[Utilities hideKeyboard];即可隐藏键盘。[viewController.view endEditing:YES];实际上辞去了第一响应者的职务。 (具体不知道)
标签: ios