OBMenuBarWindow 1.1.0

OBMenuBarWindow 1.1.0

测试已测试
语言语言 Obj-CObjective C
许可 BSD
发布上次发布2014年12月

未命名 维护。




  • Oliver Bolton

OBMenuBarWindow 是一个 NSWindow 子类别,它增加了将窗口附加到 OS X 菜单栏图标的功能。

它模拟了许多 NSPopover 的外观和感觉,但保留了普通窗口的外观和功能,包括标题栏和交通灯控件。您可以拖动窗口到菜单栏图标或从菜单栏图标中拖出,以将其附加到或从菜单栏中分离。

Screenshot 1 Screenshot 2

说明

  • OBMenuBarWindow 兼容 OS X 10.7 及以上版本。
  • 它不使用任何私有 API,因此它与 Mac App Store 兼容。
  • 如果您希望在另一个应用程序全屏时使用窗口,请在新创建的 Info.plist 文件中为 LSUIElement 添加一个布尔类型的条目,并将其值设置为 YES。这样做的一个副作用是应用程序的 dock 图标将被隐藏。
  • OBMenuBarWindow 不支持带有纹理的窗口或标准工具栏。
  • 如果您希望,可以在窗口附加到菜单栏时隐藏“交通灯”控件(请参阅下面的 窗口属性)。
  • 您可以通过 窗口属性 控制标题栏的高度和箭头大小。
  • 您可以从窗口对象监听 OBMenuBarWindowDidAttachToMenuBarOBMenuBarWindowDidDetachFromMenuBar 通知,以在用户将窗口附加或从菜单栏分离时接收通知。
  • 如果用户在窗口附加到菜单栏时调整窗口大小,则窗口将以对称方式水平调整大小,以给出自然的使用体验。

入门

手动安装

下载源代码并将 OBMenuBarWindow.hOBMenuBarWindow.m 添加到您的项目中。

使用 OBMenuBarWindow

  • 将您的窗口类设置为 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文件。