Beim Versuch, die Grundlagen des Menühandling zu lernen. Die Menüleiste meiner Test-App hat 3 Menüs - nämlich "TestApp", "Datei" und "Hilfe". Ich finde, dass ich diese Menüs vollständig entfernen kann, indem ich einfach sage:
%Vor%Ich möchte sie jedoch nur vorübergehend deaktivieren (grau ausgröbern). Gibt es eine ebenso einfache Möglichkeit, dies zu tun, bitte?
Ich mag Ihre Frage missverstehen, aber es scheint, als ob Sie die tatsächlichen Titel von Menüs, die mit der Menüleiste des Systems angezeigt werden, ausblenden möchten (z. B. das "Datei" -Menü). Ich bin mir nicht sicher, ob es überhaupt möglich ist, aber es geht sicherlich gegen die Richtlinien für Apple-Benutzeroberflächen :
Der Titel eines Menüs wird nicht angezeigt auch wenn alle Befehle des Menüs sind nicht verfügbar (abgeblendet) zur gleichen Zeit. Benutzer sollten immer in der Lage sein, ein Menüinhalte, ob sie oder nicht sind derzeit verfügbar.
Die eigentliche Lösung des Problems besteht also darin, alle Menüelemente in einem bestimmten Menü auszugrauen, wenn sich Ihre Anwendung in einem bestimmten Status befindet. Verwenden Sie dazu das NSUserInterfaceValidations-Protokoll . Es erfordert nur die Implementierung der Methode - (BOOL)validateUserInterfaceItem:
. Wenn Sie diese Methode implementieren, überprüfen Sie einfach die Auswahl des zu validierenden Benutzeroberflächenelements und geben YES zurück, wenn es aktiviert werden soll, oder NEIN, wenn dies nicht der Fall ist (wodurch der Menüeintrag ausgegraut wird).
Tags und Links cocoa nsapplication nsmenu