NSToolbar专用区域



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

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

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

我目前的方法是使用未记录的方法'_toolbarView'与NSToolbar和添加我的自定义视图到它的子视图。这工作得很好,因为我可以关闭工具栏自定义。不幸的是,工具栏的大小是用该工具栏中的项初始化的。有没有人知道如果我可以改变工具栏的大小,而不添加一个假的工具栏项目?

也许还有一种我目前不知道的更好的方法。谢谢您的建议和评论。

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

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

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

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

[toolbar setDisplayMode: NSToolbarDisplayModeIconOnly];

相关内容

  • 没有找到相关文章

最新更新