NSToolbar 专区

And*_*ang 3 xcode cocoa nstoolbar xcode4.2

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

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

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

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

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

gcb*_*ann 5

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

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

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

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

[toolbar setDisplayMode: NSToolbarDisplayModeIconOnly];
Run Code Online (Sandbox Code Playgroud)