サンプルコード
uses
...,
System.Messaging,
Macapi.ObjCRuntime, Macapi.ObjectiveC, Macapi.AppKit, Macapi.Helpers,
FMX.Helpers.Mac;
procedure TForm1.FormCreate(Sender: TObject);
begin
TMessageManager.DefaultManager.SubscribeToMessage(TApplicationDockMenuMessage,
procedure(const Sender: TObject; const M: TMessageBase)
var
menu: NSMenu;
item: NSMenuItem;
begin
menu := TNSMenu.Create;
TNSAutoreleasePool.OCClass.addObject((menu as ILocalObject).GetObjectID);
item := menu.addItemWithTitle(StrToNSStr('AAA'), sel_getUid('onMenuClicked:'), StrToNSStr(''));
item.setTag(1);
item := menu.addItemWithTitle(StrToNSStr('BBB'), sel_getUid('onMenuClicked:'), StrToNSStr(''));
item.setTag(2);
TApplicationDockMenuMessage(M).Value.ReturnValue := menu;
end);
TMessageManager.DefaultManager.SubscribeToMessage(TApplicationMenuClickedMessage,
procedure(const Sender: TObject; const M: TMessageBase)
var
item: NSMenuItem;
begin
item := TApplicationMenuClickedMessage(M).Value.Sender as NSMenuItem;
case item.tag of
1: ... // AAA
2: ... // BBB
end;
end);
end;