• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
More on Keyboard Event posting
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

More on Keyboard Event posting


  • Subject: More on Keyboard Event posting
  • From: Dave DeLong <email@hidden>
  • Date: Mon, 29 Sep 2008 09:25:35 -0600

Hi everyone,

I eventually figured out my previous problem with keyboard event posting when a colleague of mine pointed out the CGPostKeyboardEvent had been deprecated. After digging around some more, we came up with the following:

[window makeFirstResponder:textfield];
CGEventSourceRef sourceRef = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
if (sourceRef == nil) { return; }
//40 = "k"
CGEventRef eventDown = CGEventCreateKeyboardEvent(sourceRef, 40, true);
CGEventSetFlags(eventDown, kCGEventFlagMaskAlternate +kCGEventFlagMaskShift);
CGEventRef eventUp = CGEventCreateKeyboardEvent(sourceRef, 40, false);
CGEventPost(kCGAnnotatedSessionEventTap, eventDown);
CGEventPost(kCGAnnotatedSessionEventTap, eventUp);
CFRelease(eventDown);
CFRelease(eventUp);
CFRelease(sourceRef);


Running that code will correctly produce an apple symbol in the TextField. Other local commands that we send (Command-A, Command-C, Command-Q, etc) all work correctly. Even shortcuts for Services work.

However some keyevents, such as Command-Space to activate Quicksilver on my machine (usually Spotlight) or Shift-Command-3 to take a screenshot or Command-Tab to activate the application switcher, only produce a system beep. Any ideas why and how we can get around that?

We thought it might be the event source state used to create the CGEventSourceRef, but changing it to kCGEventSourceStateHIDSystemState or even kCGEventSourceStatePrivate did not produce the desired results.

Any direction would be appreciated.

Thanks,

Dave
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: More on Keyboard Event posting
      • From: Ken Thomases <email@hidden>
  • Prev by Date: Re: Mouse events with higher priority then repeating NSTimer
  • Next by Date: Re: problems in runModal in NSOpenPanel used with defaults
  • Previous by thread: Re: How to get Safari Bookmarks in the code
  • Next by thread: Re: More on Keyboard Event posting
  • Index(es):
    • Date
    • Thread