views:

410

answers:

2

In my cocoa app I am displaying a NSPanel as a modal 'window' of another NSPanel using:

[modalPanel setWorksWhenModal:YES];
[[NSApplication sharedApplication] beginSheet:modalPanel modalForWindow:mainPanel modalDelegate:nil didEndSelector:nil contextInfo:nil];

This works, however the NSTextField's that show up in that modal 'window' are not allowing copy and paste.

From searching I found the following thread on Cocoabuilder which seems like pretty much the same problem, however there was no solution given in that thread either.

http://www.cocoabuilder.com/archive/message/cocoa/2007/11/6/192462

That thread says to make sure you are not stopping copy/paste by using validation, but this is not the case for me as I currently do not have any validation on any of the fields.

Is there something special I have to do to get this to work, or does anyone have any ideas of what I could check/try?

Thanks!

+4  A: 

Is the "Edit" menu present in your application?

If you delete the edit menu, you loose the built in copy and paste functionality.

diciu
I dont have a edit menu as the program lives in the Status Bar and is displayed from the Status Bar menu or a global shortcut
kdbdallas
That was it! I added a menu and hooked up the Edit items, and even though the menu doesn't show, it worked!
kdbdallas
could you be more explicit about hooking up the edit items? I added the menu, and I still have right click paste but apple-v beeps at me.
danb
This blog entry describes how to hook up a "Dummy" edit menu for an NSStatusItem: http://www.shipsomecode.com/software/enabling-keyboard-shortcuts-with-nsstatusitems/
Kristopher Johnson
A: 

Another possible solution is to subclass NSTextField and override performKeyEquivalent:. See http://www.cocoarocket.com/articles/copypaste.html

Kristopher Johnson