8

我用来self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];向 OSX 上的 systemStatusBar 添加一个 statusItem。statusItem 然后出现在 systemStatusBar 的最左侧位置。我想知道是否有办法将这样的项目添加到特定索引,例如在系统时钟的左侧?

4

3 回答 3

2

是和不是。使用私有 API,您可以指定priority添加NSStatusItem. 我为NSStatusBarNSStatusBar+MISSINGOrder)开发了一个小类别,女巫为此提供了简单的方法:

NSStatusItem *statusItem =
    [systemStatusBar statusItemWithLength:NSVariableStatusItemLength
                               positioned:NSStatusBarItemOrderingModeAfter
                               relativeTo:NSStatusBarItemPriorityNotificationCenter];

您可以在里面查看实现细节

于 2015-04-30T18:23:33.473 回答
1

有一个私有 API 可以做到这一点:

NSStatusItem *item = [NSStatusBar _statusItemWithLength:NSSquareStatusItemLength  withPriority:INT32_MAX];

这会将状态项一直放在右侧(或者至少,在您允许拥有它们的最右侧。它仍然在聚光灯的左侧)。

显然,作为私有 API,您应该将其包装在responseToSelectorif 语句中。

于 2015-01-05T00:22:19.573 回答
0

不,Apple 不提供 API 来选择职位。

于 2014-05-10T01:44:00.357 回答