Receiving keystrokes in custom classes

I’m trying to catch any keystrokes that occur and send them to a few custom classes so they can be used in the classes. I searched through the docs and old forum posts and couldn’t find anything useful that was built in. Using declares, I created a custom NSResponder subslass through the OBJ-C Runtime library. This works great and is demonstrated in an example here. I would prefer if this were an xplat solution so my class can be used on Mac/Windows/Linux. Is there any built in way to tap into how controls receive keyevents without using a timer and Keyboard.AsyncKeyDown to cycle through every single possible key? Also in my example you will see that the keystrokes are only received when the window with the KeyDispatcher is the frontmost window. Does anyone know of a way to make my class the application first responder instead of just the first responder for the window it is in? Thanks.