• 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
Re: Carbon pasteboard/service events not firing in Cocoa app
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Carbon pasteboard/service events not firing in Cocoa app


  • Subject: Re: Carbon pasteboard/service events not firing in Cocoa app
  • From: Peter Ammon <email@hidden>
  • Date: Tue, 20 Apr 2010 14:52:05 -0700

On Apr 19, 2010, at 7:46 AM, Kevin Walzer wrote:

> I'm trying to port some Carbon code that provides basic services menu integration to a Cocoa application. This code implements the basic Carbon event handlers for this functionality, cf:
>
> const EventTypeSpec carbonServiceEvents[] = {
>  { kEventClassService, kEventServiceGetTypes },
>  { kEventClassService, kEventServiceCopy },
>  { kEventClassService, kEventServicePaste },
>  { kEventClassService, kEventServicePerform }
> };
>
>
> I understand that Cocoa has its own NSServices protocol/API, but these particular events and the Pasteboard API are still supported and not deprecated under Cocoa and 64-bit. The basic structure is here:
>
> http://developer.apple.com/carbon/pasteboards.html
>
> The code is mostly working: other applications can send clipboard data to my app's service, and it will function as expected. However, inside my application, the kEventServiceCopy event never fires. As a result, the Services menu is completely grayed out.
>
> I'm not sure how to fix this. In my Carbon application, simply installing these event handlers made the Services menu available. It's not clear to me why the kEventServiceCopy event does not fire, but the kEventServiceGetTypes event (necessary to determine if my app provides a service) and kEventServicePerform (to perform the service) do fire.
>
> Any advice is appreciated.
>
> --Kevin


Hi Kevin,

These events only fire in an app with a Carbon menu bar.  If your menu bar is Cocoa (that is, you install it with -[NSApplication setMainMenu:]) then you will need to implement the Cocoa Services APIs.

-Peter

_______________________________________________

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: Carbon pasteboard/service events not firing in Cocoa app
      • From: Kevin Walzer <email@hidden>
References: 
 >Carbon pasteboard/service events not firing in Cocoa app (From: Kevin Walzer <email@hidden>)

  • Prev by Date: Re: NSMutable setArray Behavior
  • Next by Date: Re: Carbon pasteboard/service events not firing in Cocoa app
  • Previous by thread: Carbon pasteboard/service events not firing in Cocoa app
  • Next by thread: Re: Carbon pasteboard/service events not firing in Cocoa app
  • Index(es):
    • Date
    • Thread