我使用self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
将statusItem添加到OSX上的systemStatusBar。然后statusItem出现在systemStatusBar的最左侧位置。我想知道是否有办法将这样的项目添加到特定索引,例如在系统时钟的左侧?
答案 0 :(得分:2)
是和否。使用私有API,您可以指定priority
来添加NSStatusItem
。我为NSStatusBar
(NSStatusBar+MISSINGOrder)开发了一个很小的类别,为此提供了简单的方法:
NSStatusItem *statusItem =
[systemStatusBar statusItemWithLength:NSVariableStatusItemLength
positioned:NSStatusBarItemOrderingModeAfter
relativeTo:NSStatusBarItemPriorityNotificationCenter];
您可以查看implementation details。
答案 1 :(得分:1)
有一个私有API可以执行此操作:
NSStatusItem *item = [NSStatusBar _statusItemWithLength:NSSquareStatusItemLength withPriority:INT32_MAX];
这会将状态项一直放到右侧(或者至少在您允许的情况下向右移动。它仍然位于聚光灯的左侧)。< / p>
显然,作为私有API,您应该将其包装在responseToSelector
if语句中。
答案 2 :(得分:0)
没有。 Apple不提供选择职位的API。