Ich beantworte das mal, da ich ebenfalls auf das Problem gestoßen bin.
Es scheint irgend ein Problem mit submenu zu geben. Sobald man ein Element im Untermenü holen will, gibt es eine
Exception. Irgendwie finde ich den Plattform Code auch etwas undurchsichtig, aber wenn man "eh" schon selber Hand anlegen muss, kann man auch seinen eigenen Code einbinden:
In
constructor TFMXOSMenuItem.Create(const AFMXMenuItem: TMenuItem);
habe ich folgendes ergänzt:
Delphi-Quellcode:
if AFMXMenuItem.Tag = -99 then
begin
ServiceMenu := TNSMenu.Create;
ServiceMenu := TNSMenu.Wrap(ServiceMenu.init);
NSMenuItem(Super).setSubmenu(ServiceMenu);
TNSApplication.Wrap(TNSApplication.OCClass.sharedApplication).
setServicesMenu(ServiceMenu);
end;
So braucht man den TAG vom Servicemenü lediglich auf -99 setzen und schon wird das Menü hinzugefügt. Der Vorteil ist dabei, dass man nicht dauernd prüfen muss, ob das Menü neu aufgebaut wurde. Eine Helferklasse wäre natürlich besser, aber man(n) ist ja etwas faul
Christian