我需要在NSViewController的子类中捕获mouseDown和keyDown事件,因为它不可能(请纠正我,如果我错了)我将我的GameViewController类留空并将所有方法放到新的GameView类中。在GameViewController.xib的身份检查器中,我将我的类设置为GameView,而File的Owner设置为GameViewController。毕竟,我的mouseDown方法有效,但keyDown没有。 我试过这个:
- (BOOL) acceptsFirstResponder {
return YES;
}
但它没有帮助。
请告诉我该怎么做。
UPD:实际上keyDown方法有效,但首先我需要点击窗口空白处的某个地方,然后一切都按照计划进行。再次,mouseDown事件被触发没有问题。我可能做错了什么?
答案 0 :(得分:0)
您的观点在提供时接受第一响应者,但在您点击之前没有任何东西试图将其作为第一响应者。
在显示窗口initialFirstResponder
之前设置它一段时间。如果您正在使用NIB,则可以在那里进行设置。或者你可以通过编程方式完成。
显示窗口后,您可以调用[window makeFirstResponder:view]
使视图成为其窗口的第一个响应者。