2009-05-02 5 views
2

Ich möchte die Command + Click-Kombination auf einer Symbolleistenschaltfläche (oben rechts) in einem Cocoa-Fenster deaktivieren. Ich möchte immer noch den Benutzer die Symbolleiste ein- und ausblenden lassen, aber ich möchte nicht, dass sie einen anderen Anzeigemodus auswählen können (z. B. kleine Symbole, keine Symbole usw.).Deaktivieren Sie die NSToolbar-Anpassung über die Symbolleiste in der Symbolleiste?

Hat jemand einen Weg gefunden, dies zu tun? Danke im Voraus.

Antwort

2

Haben Sie versucht, eine benutzerdefinierte NSToolbar-Unterklasse zu verwenden, die setDisplayMode überschreibt: und setSizeMode: nichts tun? Dadurch werden natürlich nicht die Menüelemente oder die Benutzeroberfläche im Anpassungsblatt entfernt (vorausgesetzt, Sie deaktivieren dies auch nicht mit setAllowsUserCustomization :), aber es könnte sie daran hindern, irgendetwas zu tun.

+1

Danke. Ich unterordnete NSToolbar und verwendete - (BOOL) _allowsSizeMode und - (void) setDisplayMode. – thatinkjar

4

Sie müssen dazu keine Unterklasse von NSToolbar erstellen. In Ihrer NSWindowController Unterklasse, setzen Sie folgend in awakeFromNib:

- (void) awakeFromNib 
{ 
    NSToolbar *tb = [[self window] toolbar]; 
    [tb setAllowsUserCustomization:NO]; 
} 

Sie haben auch den zusätzlichen Vorteil der private API Nutzung zu vermeiden.

+0

Leider ist das nicht genug. Ich möchte dem Benutzer ermöglichen, die Elemente auf der Symbolleiste anzupassen, aber ich möchte kleine Symbole und die Möglichkeit, Textbeschriftungen usw. zu haben, deaktivieren. Ich wollte diese Optionen über das Standard-Rechtsklick-Menü sowie deaktivieren die Aktion Befehl + Klick auf der Symbolleistenschaltfläche (oben rechts im Fenster). Um dies zu tun, musste ich wie oben angegeben Unterklassen bilden. Danke, dass du dir die Zeit genommen hast zu antworten, obwohl :) – thatinkjar