任何人都知道为什么当我运行这个代码时,UIViewController不会成为第一反应者:
[self becomeFirstResponder];
NSLog(@"is first resp: %i",[self isFirstResponder]);
在控制台中,我总是看到一行:“is first resp:0”
我可以成为第一反应者方法:
- (BOOL)canBecomeFirstResponder {
return YES;
}
我都不知道下一步该去哪里…
最佳答案
更新
正如我所怀疑的,我认为使用UIViewController
/firstResponder
是错误的。这个AA>在苹果DeV论坛上特别谈到了摇晃工作。
原始答案
对要响应的ui元素调用becomeFirstResponder
。只要链中没有其他对象实现触摸方法(或者至少保持将它们转发到链),事件将自动转发到UIViewController
。
旁注:根据其他人的评论,让UIViewController
成为“第一个”回应者真的没有意义。第一个应答器应该是一个屏幕上的对象(Accc>或它的子类之一)。
虽然这可能是一个完全不正确的陈述,但是在《CC》中可能有无证行为阻止它成为第一反应者,因为这些问题(比我聪明的人可能能够验证这一点的有效性)。