2009-05-02 36 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