OBMenuBarWindow 是一个 NSWindow 子类别,它增加了将窗口附加到 OS X 菜单栏图标的功能。
它模拟了许多 NSPopover 的外观和感觉,但保留了普通窗口的外观和功能,包括标题栏和交通灯控件。您可以拖动窗口到菜单栏图标或从菜单栏图标中拖出,以将其附加到或从菜单栏中分离。
说明
Info.plist
文件中为 LSUIElement
添加一个布尔类型的条目,并将其值设置为 YES
。这样做的一个副作用是应用程序的 dock 图标将被隐藏。OBMenuBarWindowDidAttachToMenuBar
和 OBMenuBarWindowDidDetachFromMenuBar
通知,以在用户将窗口附加或从菜单栏分离时接收通知。下载源代码并将 OBMenuBarWindow.h
和 OBMenuBarWindow.m
添加到您的项目中。
OBMenuBarWindow
。menuBarIcon
属性设置您的窗口图标。hasMenuBarIcon
属性设置为 YES
。菜单栏图标
hasMenuBarIcon
- 窗口是否具有菜单栏图标(《BOOL》,《默认为《NO》》)。menuBarIcon
- 菜单栏图标图像(《NSImage》)。highlightedMenuBarIcon
- 菜单栏图标(NSImage
)的高亮版本。statusItem
- 与窗口相关的状态项(NSStatusItem
)。附加到菜单栏
attachedToMenuBar
- 窗口是否附加到菜单栏(BOOL
,默认值为 NO
)。isDetachable
- 窗口是否可以从菜单栏分离(BOOL
,默认值为 YES
)。hideWindowControlsWhenAttached
- 窗口附加到菜单栏时是否隐藏窗口“交通灯”(BOOL
,默认值为 YES
)。snapDistance
- 当拖动时,将窗口“吸附”到菜单栏的中心与菜单栏图标之间的阈值距离(CGFloat
,默认为 30 像素)。distanceFromMenuBar
- 窗口附加到菜单栏时,窗口与菜单栏之间的距离(CGFloat
,默认为 0 像素)。arrowSize
- 指向菜单栏图标的箭头大小(NSSize
,默认为 {20, 10}
)。标题栏
titleBarHeight
- 标题栏的高度(CGFloat
,默认为 22 像素)。titleTextField
- 窗口标题文本字段(NSTextField
)。toolbarView
- 包含窗口的工具栏项目的视图(NSView
)。阅读文档。
OBMenuBarWindow是由Oliver Bolton创建的。
OBMenuBarWindow遵循修改后的BSD许可。有关更多信息,请参阅LICENSE
文件。