Wie fügt man Menü-Trennzeichen hinzu, die unter OSX wie erwartet funktionieren?

8

Auf Windows Plattform, mit der VCL , wenn wir ein Trennzeichen in einem Menü hinzufügen möchten, fügen wir ein TMenuItem mit hinzu a Caption := '-' ;

Mit FireMonkey fügen wir ein TMenuItem mit einem Text := '-' ;

hinzu

Es funktioniert wie erwartet auf Windows-Plattform, das Element mit dem Text = '-' wird als Trennzeichen angezeigt.

Aber wenn ich die gleiche Anwendung auf OSX ausführe, habe ich das Minuszeichen sichtbar ...

Ich habe keine Eigenschaft in TMenuItem gefunden, um anzugeben, dass es sich um ein Trennzeichen ...

handelt

Ich habe versucht mit einem TMainMenu und einem TMenuBar ( UseOSMenu := True|False; ) und ich habe immer noch dieses Problem.

Irgendeine Idee, ein echtes Trennzeichen zu erstellen? (sonst werde ich das OS überprüfen und es entfernen, wenn OSX ...)

    
Whiler 21.09.2011, 19:34
quelle

3 Antworten

4

Dies ist ein Fehler in FireMonkey. Ich bin sicher, dass sie es lösen werden. Aber in der Zwischenzeit können Sie den folgenden Code verwenden. Rufen Sie die Prozedur FixSeparatorItemsForMac im OnActivate-Ereignis Ihres Hauptformulars auf.

Vergessen Sie nicht, Mac-spezifische Dateien in der Verwendungsliste.

%Vor%     
mehmed.ali 02.10.2011, 19:58
quelle
0

Ich habe nie für den Mac programmiert, und ich habe keinen Mac, aber aus Neugierde habe ich eine Apple-Dokumentation darüber gefunden.

Der Menüpunkt "Menütrenner" ist ein deaktivierter leerer Menüeintrag, möglicherweise können Sie damit fälschen:

  

separatorItem

     

Gibt ein Menüelement zurück, das zum Trennen von logischen Menügruppen verwendet wird   Befehle.   + (NSMenuItem *) separatorItem Rückgabewert

     

Ein Menüelement, das zum Trennen logischer Gruppen von Menübefehlen verwendet wird.

     

Diskussion

     

Dieser Menüpunkt ist deaktiviert. Das Standard-Trennzeichen ist Leerzeichen.

(Von: Ссылка )

    
Daniel Luyo 21.09.2011 22:51
quelle
-1

Ich habe nicht die Möglichkeit, dies zu testen, aber es ist einen Versuch wert.

Standardmäßig erstellt FireMonkey eigene Menüs, die vollständig formatiert sind, setzt aber die Eigenschaft TMenuBar.UseOSMenu auf true und verwendet OS-Aufrufe zum Erstellen der Menüs.

Sie können dies mit dem bereits erwähnten Hinweis zum Erstellen von Cocoa-Menüs kombinieren.

Von Ссылка :

"Wenn die TMenuBar.UseOSMenu-Eigenschaft auf True gesetzt wird, erstellt FireMonkey die Menüstruktur mit Betriebssystemaufrufen, was zu einem systemeigenen Menü führt. Unter Windows befindet sich dieses Menü oben im übergeordneten Formular und wird mit dem aktuellen Design angezeigt Unter Mac OS X wird das Menü in der globalen Menüleiste oben auf dem Hauptbildschirm angezeigt, wenn die Anwendung den Fokus hat. "

    
Mike Sutton 22.09.2011 22:55
quelle