Hello,

I am having problems setting a menu for my application. I am writting
the application in Object Pascal and I am not using nib files, because
the point is being able to use this to port cross-platform GUI
libraries.

I create a NSMenu and set it to both AppleMenu and MainMenu, or just 1
of them, but nothing happens!! I always get just an empty menu. I have
read tutorials out there, but according to them this code should work.

I create my menu with this code:

  ....

  MainMenu := CreateMainMenu();

  NSApp.setAppleMenu(MainMenu.Handle);
  NSApp.setMainMenu(MainMenu.Handle);
end;

function TMyView.CreateToolbar(AOwnerView: NSView; AX, AY, AWidth,
  AHeight: Double): NSToolbar;
begin
  Result := NSToolbar.initWithIdentifier(CFEmptyString);
  ToolbarController := TMyToolbarController.Create;
  Result.setDelegate(ToolbarController.Handle);
end;

function TMyView.CreateMainMenu(): NSMenu;
var
  Item1: NSMenuItem;
  MenuTitle: CFStringRef;
begin
  MenuTitle := CFStringCreateWithPascalString(nil, 'Title',
kCFStringEncodingUTF8);
  WriteLn('CreateMenu');
  Result := NSMenu.initWithTitle(MenuTitle);
  WriteLn('Menu Created');

  Item1 := CreateMenuItem('Exit', Str_doClose, myController);
  Result.addItem(Item1.Handle);
end;

function TMyView.CreateMenuItem(ATitle: shortstring;
  ACallbackName: string; ACallbackClass: NSObject): NSMenuItem;
var
  ItemText: CFStringRef;
  KeyText: CFStringRef;
begin
  KeyText := CFStringCreateWithPascalString(nil, '', kCFStringEncodingUTF8);
  ItemText := CFStringCreateWithPascalString(nil, ATitle,
kCFStringEncodingUTF8);
  WriteLn(' ItemText: ', IntToHex(Int64(ItemText), 8), ' ATitle: ', ATitle);

  Result := NSMenuItem.initWithTitle_action_keyEquivalent(ItemText,
nil, KeyText);
  Result.setTarget(ACallbackClass.Handle);
  Result.setAction(sel_registerName(PChar(ACallbackName)));
end;

thanks,
-- 
Felipe Monteiro de Carvalho
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to