任何人都知道为什么当我运行这个代码时,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》中可能有无证行为阻止它成为第一反应者,因为这些问题(比我聪明的人可能能够验证这一点的有效性)。

08-05 22:41
查看更多