我用来self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
向 OSX 上的 systemStatusBar 添加一个 statusItem。statusItem 然后出现在 systemStatusBar 的最左侧位置。我想知道是否有办法将这样的项目添加到特定索引,例如在系统时钟的左侧?
问问题
728 次
3 回答
2
是和不是。使用私有 API,您可以指定priority
添加NSStatusItem
. 我为NSStatusBar
(NSStatusBar+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,您应该将其包装在responseToSelector
if 语句中。
于 2015-01-05T00:22:19.573 回答
0
不,Apple 不提供 API 来选择职位。
于 2014-05-10T01:44:00.357 回答