When people say "in a subclass of NSResponder", they don't necessarily mean that you should make a new NSResponder subclass. What they mean is this: key presses are handled by responders. Your app structure is chock full of responders! So, to intervene in the key-handling process, subclass one of those (so that you have somewhere to put the code).
The "fundamental concept" that you are missing is the responder chain:
(Scroll down to the heading "Responder Chain".)
A frequent place to put this sort of code is the window controller. NSWindowController is an NSResponder subclass. It's high up in the responder chain, and you've probably already got a class for it.
Another option is to use a view. NSView is an NSResponder subclass, and your window is full of views. It wouldn't be surprising to put an otherwise inert NSView in back of everything in the window, just to function as a backstop NSResponder to catch events that come up the chain.