問題タブ [nsstatusitem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
580 参照

nswindow - MAAttachedWindowをNSMenuのように動作させる

ユーザーがMAAttachedWindowの外側をクリックしたときにMAAttachedWindowを非表示にする方法について、このサイトの投稿を読みました。この投稿のように、私はstatusItemと一緒にMAAttachedWindowを使用します。 外側をクリックすると、MAAttachedWindowを非表示にします。キー状態を終了するときにウィンドウを非表示にする必要があると表示されます。

しかし、ウィンドウのキーステータスの代わりに他のアプローチがあるのではないかと思います。キーステータスを操作すると、別の問題が追加されます。ウィンドウがキー状態を辞任したときに通知を受け取るには、他のすべてのアプリケーションが以前に無視されている必要があります(つまり、他のすべてのアプリケーションのウィンドウが非アクティブになり、次の場合に色が失われます。 statusMenuが表示されます。これは[NSAppactivateIgnoringOtherApps:YES]によって実行されます。Spotlight-またはAirport-statusItemを使用する場合、これは通常は発生しません。ユーザーはこれを期待していません。

MAAttachedWindowを実際のNSMenuのように動作させる人はいますか?この問題を発生させずにキーステートを操作する方法はまだありますか?ヒントありがとうございます。

0 投票する
1 に答える
1619 参照

objective-c - NSStatusItem のカスタム ウィンドウを閉じる

NSStatusItem をクリックするとカスタム ウィンドウがポップアップします。コードはMAAttachedwindowに基づいています。すべてがうまく機能していますが、ユーザーが別のステータスバーアイテムや別のアプリなどをクリックしたときにウィンドウを閉じる方法がわかりません。

ウィンドウを作成するための私のコードは次のとおりです。

そして、これが私がウィンドウを表示している方法です:

デリゲート メソッドがそのトリックを実行することを望んでwindowDidResignKeyいましたが、この構成ではうまくいきません。実行されているため、デリゲートは機能してwindowDidMoveいます。

要約すると、標準のステータス バー メニューのように、ユーザーが何か他のものをクリックしたときにカスタム ウィンドウを非表示にするにはどうすればよいでしょうか?

編集ポップアップの例 を見た後、唯一欠けていたのは、NSPanel をサブクラス化し、それをキー ウィンドウにできるようにする必要があったことです。

0 投票する
4 に答える
5790 参照

objective-c - NSStatusItem 右クリック メニュー

左クリックと右クリックがあるステータスバーアプリに取り組んでいます。他の投稿のヒントに従ってこの作業を開始しましたが、右クリックでメニューを表示する方法がわかりません。

サブクラス化された NSView を NSStatusItem のカスタム ビューとして使用し、右クリックと左クリックでさまざまな機能を実行します。

標準の NSStatusItem が左クリックで行うのと同じように、右クリックでメニューを表示するにはどうすればよいですか?

0 投票する
2 に答える
1092 参照

objective-c - 属性付き文字列で NSStatusItem を強調表示する

私は NSStatusItem を持っており、属性付きの文字列を使用しています。設定は次のとおりです。

as私の属性文字列はどこですか。特定の条件が満たされたときにアイテムの特定の部分を異なる色で強調するために使用します。たとえば、ステータス アイテムに赤いテキストと黒いテキストを含めることができます。

問題は、setAttributedTitleステータス項目を使用してクリックすると、色が反転しないことです。たとえば、 just を使用した場合setTitle、テキストは選択されていないときは黒で、選択されているときは白に変わります。これで、設定した色が保持されます。

選択時に色を反転するように指示する方法はありますか? そうでない場合、どうすればこれを達成できますか? 申し訳ありませんが、私は Objective-C の初心者です。

0 投票する
2 に答える
613 参照

objective-c - ステータスバーにNSStatusItemが表示されているかどうかを検出する方法は?

私の Mac OS X アプリケーションには NSStatusItem があります。

正常に動作しますが、トップ メニュー/ステータス バーにアイテムが多すぎる場合 (たとえば、アプリに長いメニューがある場合、アイコンが多すぎる場合など)、ステータス アイテムが非表示になることがわかりました。システムによって。

アプリケーションでこれを検出するにはどうすればよいですか?

ありがとう

0 投票する
1 に答える
465 参照

objective-c - 非ビューベースの NSStatusItem の画面位置を取得する

私のアプリケーションは NSStatusItem を利用しています。ステータス アイテムの画面座標を取得する必要がありますが、アイテムのカスタム ビューを設定することによって提供される機能は必要ないため、代わりに標準のアイコン ベースのビューを使用しています。

カスタム ビューを設定せずにステータス アイテムの位置を取得する方法はありますか?

0 投票する
1 に答える
540 参照

macos - NSStatusItemの長さを取得します

アプリにNSStatusItemがあり、テキストを表示するように構成できます。このテキストは変更される可能性があり、問題は、長さが変更されるたびに、ステータスアイテム全体の長さが変更され、「幅のちらつき」が発生することです。

ステータス項目の長さをに設定し、NSVariableStatusItemLength可能な限り長いテキストを挿入し、長さを元に戻し、それをステータス項目の一定の長さに設定することを考えました。lengthただし、の関数は実際の長さではなくNSStatusItem単に戻るため、これにはまったく役に立たないように見えます。NSVariableStatusItemLength

それで、NSStatusItemがテキストとオプションでアイコンを保持するために必要な時間を事前に計算する別の方法はありますか?たとえば、アイコンとフォントの面/サイズはすべてのMacシステムで同じであることが保証されているので、システムで最適な長さを簡単に「測定」できますか?

0 投票する
1 に答える
842 参照

macos - OS X メニューバーのクリックを検出しますか?

メニューバー全体のクリックを検出するトリックがあるかどうか興味があります。NSStatusItem または NSMenu のクリックを検出できることはわかっていますが、メニュー バーの空きスペースに関するイベントを探しています。

ドキュメントを見ると、それは不可能のようです。ただし、誰かがこの機能の回避策を持っているかどうか知りたいですか?

0 投票する
1 に答える
929 参照

objective-c - NSStatusItem が非表示になったときに通知される

を使用するアプリがありますNSStatusItem。小さな画面では、ステータス バーに十分なスペースがありません。ユーザーが多くのメニュー アイテムを含むアプリケーションに切り替えると、ステータス アイテムが非表示になります。これについて通知を受ける方法はありますか?

私がこれまでに試したこと:

  • NSNotification解雇されたかどうかを確認しました:いいえ
  • statusViewがビュー階層から削除されているかどうかを確認しました:いいえ
  • 私はチェックしましたisHiddenOrHasHiddenAncestor:いいえ

ステータス アイテムの作成に使用するコードを次に示します。