I'm having hard time understanding and finding info about how to make NSViewController accept key and mouse events. I read somewhere that in order to register these events in NSViewController it should be added to a responder chain, but I can't find the answer how to properly do this.
Any kind of help is highly appreciated!
Manually patching in the
NSViewController
into the responder chain isn't necessary anymore as of OS X 10.10 Yosemite. According to WWDC '14, "they're automatically wired up in the responder chain right after their view."Or if, as is the case most of the time, your controller's view is simply a generic container, insert your controller in the responder chain between its view and its subviews. This can be done with these lines of code in your controller's
awakeFromNib:
Obj-C:
Swift:
No subclassing needed.
There's a nice tutorial found at CocoaWithLove.com.
Summed up: you'll create a subclass of NSView (e.g. "EugeneView") and then that subclass will have some extra methods in it, such as "
setNextResponder
" and "setViewController
". And doing these two methods should get your NSViewController integrated into the responder chain.