2013-11-14 6 views
5

私はOSXのsystemStatusBarにstatusItemを追加するのにself.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];を使用します。 statusItemは、systemStatusBarの一番左の位置に表示されます。そのようなアイテムを特定のインデックスに追加する方法があるかどうか疑問に思っていました。システムクロックの左側に?NSStatusBarの特定の位置にNSStatusItemを追加することはできますか?

+0

http://undefinedvalue.com/2009/07/07/adding-custom-view-nsstatusitem –

答えて

0

いいえ、Appleは位置を選択するためのAPIを提供していません。

1

これを行うにはプライベートAPIがあります:あなたがそれらを持つことが許されている限り、右に、少なくともずっと右にステータスアイテムを配置(またはます

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

スポットライトの左側にはまだあります)。

明らかにプライベートAPIであるため、responseToSelector ifステートメントでラップする必要があります。

2

はい、いいえ。プライベートAPIを使用するとNSStatusItemを追加する場合はpriorityと指定できます。

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

あなたはimplementation detailsのために内部探すことができます:私は(NSStatusBar+MISSINGOrderNSStatusBarのための小さなカテゴリを開発した魔女が、このための簡単な方法を提供しています。

+0

が私のプロジェクトではうまくいかない理由を参照してください。私は10.12です – jimwan