通过窗口的工具栏按钮禁用NSToolbar自定义?

时间:2009-05-02 19:12:18

标签: objective-c xcode macos cocoa

我希望在Cocoa窗口的工具栏按钮(位于右上角)禁用Command + Click组合。我仍然想让用户显示和隐藏工具栏,但我不希望他们能够选择不同的显示模式(例如小图标,没有图标等)。

有没有人找到办法做到这一点?提前谢谢。

2 个答案:

答案 0 :(得分:5)

您不需要继承NSToolbar来执行此操作。在NSWindowController子类中,将以下内容放在awakeFromNib中:

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

您还可以避免使用私有API。

答案 1 :(得分:2)

您是否尝试过使用覆盖setDisplayMode的自定义NSToolbar子类:和setSizeMode:什么都不做?这当然不会删除菜单项,也不会删除自定义表中的UI(假设您没有使用setAllowsUserCustomization :)禁用它,但它可能会阻止它们执行任何操作。