Skip navigation.
 
mlRe: replacing carbon menu with cocoa
FROM : Esteban Lorenzano
DATE : Tue Oct 14 16:09:32 2008

Hi,
I loaded from Nib, as you suggest, and something strange happens -
strange, but near what I need-

If I load a Nib, the new main menu overlaps the old one (and two menus 
coexist)... but new Main Menu redraws "apple" menu too, and disappear 
if I reload the Nib. Finally, if I first "clean" carbon menu, and then 
load bundle twice, everything seems to be working. This is the code I 
wrote:

static sqInt initializeCocoaMenu(void) {
   MenuRef cleanMenu;

   //First we clean the carbon menu
   CreateNewMenu(menuId, 0, &cleanMenu);
   SetMenuTitleWithCFString(cleanMenu, CFSTR(""));
   SetRootMenu(cleanMenu);
   //Then we load the bundle
   [ NSBundle loadNibNamed: @"MarsPlugin" owner: [ NSApplication 
sharedApplication ] ];
   //... twice
   [ NSBundle loadNibNamed: @"MarsPlugin" owner: [ NSApplication 
sharedApplication ] ];
   return sqNil;
}

... but this is ok?

Thanks,
Esteban

On 13/10/2008, at 4:27p.m., Peter Ammon wrote:

>
> On Oct 13, 2008, at 5:18 AM, Esteban Lorenzano wrote:
>

>> Hi,
>> I'm new to the list -and to cocoa-, and I don't know if what I want 
>> to do is possible: I'm writing a plugin for a previous existent 
>> application made in carbon, the application will take over the old 
>> app behavior, and for that, it needs to replace the menu with a new 
>> one...
>> I read documentation, saw examples and followed old threads on this 
>> list, and no one is very clear about this... ¿Is it possible? ¿how?

>
> You should make a nib from the "Application" template in Interface 
> Builder, then load it via [NSBundle loadNibNamed:...].  Its main 
> menu will replace the current main menu.
>

>>
>> I already tried
>>
>> [ NSApp setMainMenu: myMenu ]
>>
>> It does not fail, but nothing happens :(

>
> It's hard to say what this would do without seeing the code that 
> creates myMenu.  But there's some problems creating a main menu 
> programmatically; using a nib is the best approach.
>
> -Peter
>


"Querer es suscitar las paradojas"
Camus - El mito de Sísifo

Related mailsAuthorDate
mlreplacing carbon menu with cocoa Esteban Lorenzano Oct 13, 14:18
mlRe: replacing carbon menu with cocoa Peter Ammon Oct 13, 21:27
mlRe: replacing carbon menu with cocoa Kyle Sluder Oct 14, 00:43
mlRe: replacing carbon menu with cocoa Esteban Lorenzano Oct 14, 16:09
mlRe: replacing carbon menu with cocoa Peter Ammon Oct 14, 19:36