Eug*_*din 11 macos cocoa objective-c nsviewcontroller nsresponder
我很难理解和查找有关如何使NSViewController接受键和鼠标事件的信息.我在某处读到,为了在NSViewController中注册这些事件,它应该被添加到响应者链中,但我找不到如何正确执行此操作的答案.
任何形式的帮助都非常感谢!
在CocoaWithLove.com上找到了一个很好的教程.
总结:你将创建一个NSView的子类(例如"EugeneView"),然后该子类将有一些额外的方法,如" setNextResponder"和" setViewController".并且执行这两个方法应该将NSViewController集成到响应器链中.
或者,如果像大多数情况一样,控制器的视图只是一个通用容器,则将控制器插入其视图和子视图之间的响应链中.这可以通过控制器中的这些代码行来完成awakeFromNib:
OBJ-C:
[self setNextResponder:self.view];
for (NSView *subview in self.view.subviews) {
[subview setNextResponder:self];
}
Run Code Online (Sandbox Code Playgroud)
迅速:
override func awakeFromNib() {
super.awakeFromNib()
self.nextResponder = self.view
for subview in self.view.subviews {
subview.nextResponder = self
}
}
Run Code Online (Sandbox Code Playgroud)
不需要子类化.
| 归档时间: |
|
| 查看次数: |
7533 次 |
| 最近记录: |