2009-05-02 108 views
2

我正在尋找禁用Cocoa窗口中的工具欄按鈕(位於右上角)上的Command + Click組合。我仍然希望讓用戶顯示和隱藏工具欄,但我不希望他們能夠選擇不同的顯示模式(例如小圖標,無圖標等)。通過窗口的工具欄按鈕禁用NSToolbar定製?

有沒有人找到一種方法來做到這一點?提前致謝。

回答

2

您是否嘗試過使用覆蓋setDisplayMode的自定義NSToolbar子類:setSizeMode:什麼也不做?當然,這不會刪除菜單項或自定義表中的UI(假設您不是通過setAllowsUserCustomization :)來禁用它,但它可能會阻止它們執行任何操作。

+1

謝謝。我subclassed NSToolbar和使用 - (BOOL)_allowsSizeMode和 - (void)setDisplayMode。 – thatinkjar 2009-05-03 07:32:28

4

您不需要子類NSToolbar來做到這一點。在你的NSWindowController子類,把你的awakeFromNib如下:

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

你也有避免私有API使用的額外好處。

+0

不幸的是,這還不夠。我想允許用戶自定義工具欄上的項目,但我想禁用小尺寸的圖標以及具有文本標籤等功能。我想通過標準的右鍵單擊菜單禁用這些選項,以及工具欄按鈕上的Command + Click動作(窗口右上角)。要做到這一點,我需要如上所述進行子類化。感謝您花時間回答,儘管:) – thatinkjar 2009-05-04 08:30:14