Is it possible to get the keyboard state in Objective-C without referring to NSEvent?
In general I can’t use NSResponder methods like -[NSResponder flagsChanged:] but I need to know if the Command key is currently pressed.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I’m still wondering why you can’t use
NSEvent, but I’m going to answer the question anyways. Perhaps you’re building a “command-line tool” and are only linked against Foundation? You’re going to have to include at least one more framework. If you want to link against AppKit, you can (as I mentioned in the comments) use+[NSEvent modifierFlags]; this is a class method onNSEvent, so you can use it anywhere, without needing to have access to an individual event, to get the current state of the modifier keys as a bitmask. The docs explain the meaning of the bitmask.You can also get this info using Quartz Event Services. In this case you have to include the ApplicationServices framework*. The CGEventSource functions will give you the same bitmask you get from
NSEvent:*This is already included if you are, in fact, writing a Cocoa app — it’s part of Quartz.