【发布时间】:2020-03-19 23:43:23
【问题描述】:
我很难理解和查找有关如何使 NSViewController 接受键和鼠标事件的信息。我在某处读到,为了在 NSViewController 中注册这些事件,应该将其添加到响应者链中,但我找不到如何正确执行此操作的答案。
非常感谢任何形式的帮助!
【问题讨论】:
-
到目前为止你做了什么?当您运行搜索 [objective-c] [osx] nsview 鼠标事件时,您会发现什么?
-
我有一个自定义视图控制器,它是 NSViewController 的子类。这个控制器有一个属性,它是一个 NSView。该属性通过 nib 文件(通过 IBOutlet)设置。我知道我可以继承 NSView,并在那里实现鼠标/键事件,并通过通知将它们传递给我的控制器......或者在那里使用 setNextResponder(如下迈克尔所说)。但是,我很好奇我是否可以在不从 nsview 子类化的情况下以某种方式将控制器广告到响应者链。
-
Claus Jørgensen 是正确的,因为并非所有视图控制器都在所有情况下都添加到响应者链中 - 例如,如果视图控制器本身没有作为子视图控制器添加到父控制器(但是它的视图以某种方式通过其他方式添加到视图层次结构中),该视图控制器不会成为响应者链的一部分。
标签: objective-c macos cocoa nsviewcontroller nsresponder