3

我喜欢尝试完全接管 NSToolbar 所在的区域,这样我就可以放置我自己的自定义控件、视图和背景。使用该区域的优点是:

  • 任何滑动面板都出现在工具栏区域下方,而不仅仅是标题栏。
  • 在 Lion 中,当鼠标位于屏幕顶部时,工具栏区域与菜单栏一起下降。

我曾尝试使用无边框窗口,并在其中实现我自己的自定义视图,但不幸的是我失去了上述优势以及其他一些小问题。

我目前的方法是使用未记录的方法“_toolbarView”和 NSToolbar 并将我的自定义视图添加到它的子视图中。这很好用,因为我可以关闭工具栏自定义。不幸的是,工具栏的大小是用该工具栏中的项目初始化的。有谁知道我是否可以在不添加假 ToolbarItem 的情况下更改工具栏的大小?

也许还有一种我目前不知道的更好的方法。感谢您的任何建议和意见。

4

1 回答 1

5

无需使用任何未记录的 API。只需使用自定义视图创建一个工具栏项:

- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag {
    NSToolbarItem *item = [[[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier] autorelease];
    …
    [item setView:myCustomToolbarView];
    …
}

您可以使用项目minSizemaxSize属性(例如在您NSWindowDelegate的 's中-windowDidResize:)控制自定义工具栏的大小。

请记住还要更新工具栏显示模式,使其不显示项目标签:

[toolbar setDisplayMode: NSToolbarDisplayModeIconOnly];
于 2011-08-15T07:33:12.333 回答