問題タブ [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.
nswindow - MAAttachedWindowをNSMenuのように動作させる
ユーザーがMAAttachedWindowの外側をクリックしたときにMAAttachedWindowを非表示にする方法について、このサイトの投稿を読みました。この投稿のように、私はstatusItemと一緒にMAAttachedWindowを使用します。 外側をクリックすると、MAAttachedWindowを非表示にします。キー状態を終了するときにウィンドウを非表示にする必要があると表示されます。
しかし、ウィンドウのキーステータスの代わりに他のアプローチがあるのではないかと思います。キーステータスを操作すると、別の問題が追加されます。ウィンドウがキー状態を辞任したときに通知を受け取るには、他のすべてのアプリケーションが以前に無視されている必要があります(つまり、他のすべてのアプリケーションのウィンドウが非アクティブになり、次の場合に色が失われます。 statusMenuが表示されます。これは[NSAppactivateIgnoringOtherApps:YES]によって実行されます。Spotlight-またはAirport-statusItemを使用する場合、これは通常は発生しません。ユーザーはこれを期待していません。
MAAttachedWindowを実際のNSMenuのように動作させる人はいますか?この問題を発生させずにキーステートを操作する方法はまだありますか?ヒントありがとうございます。
objective-c - NSStatusItem のカスタム ウィンドウを閉じる
NSStatusItem をクリックするとカスタム ウィンドウがポップアップします。コードはMAAttachedwindowに基づいています。すべてがうまく機能していますが、ユーザーが別のステータスバーアイテムや別のアプリなどをクリックしたときにウィンドウを閉じる方法がわかりません。
ウィンドウを作成するための私のコードは次のとおりです。
そして、これが私がウィンドウを表示している方法です:
デリゲート メソッドがそのトリックを実行することを望んでwindowDidResignKey
いましたが、この構成ではうまくいきません。実行されているため、デリゲートは機能してwindowDidMove
います。
要約すると、標準のステータス バー メニューのように、ユーザーが何か他のものをクリックしたときにカスタム ウィンドウを非表示にするにはどうすればよいでしょうか?
編集ポップアップの例 を見た後、唯一欠けていたのは、NSPanel をサブクラス化し、それをキー ウィンドウにできるようにする必要があったことです。
objective-c - NSStatusItem 右クリック メニュー
左クリックと右クリックがあるステータスバーアプリに取り組んでいます。他の投稿のヒントに従ってこの作業を開始しましたが、右クリックでメニューを表示する方法がわかりません。
サブクラス化された NSView を NSStatusItem のカスタム ビューとして使用し、右クリックと左クリックでさまざまな機能を実行します。
標準の NSStatusItem が左クリックで行うのと同じように、右クリックでメニューを表示するにはどうすればよいですか?
objective-c - 属性付き文字列で NSStatusItem を強調表示する
私は NSStatusItem を持っており、属性付きの文字列を使用しています。設定は次のとおりです。
as
私の属性文字列はどこですか。特定の条件が満たされたときにアイテムの特定の部分を異なる色で強調するために使用します。たとえば、ステータス アイテムに赤いテキストと黒いテキストを含めることができます。
問題は、setAttributedTitle
ステータス項目を使用してクリックすると、色が反転しないことです。たとえば、 just を使用した場合setTitle
、テキストは選択されていないときは黒で、選択されているときは白に変わります。これで、設定した色が保持されます。
選択時に色を反転するように指示する方法はありますか? そうでない場合、どうすればこれを達成できますか? 申し訳ありませんが、私は Objective-C の初心者です。
objective-c - ステータスバーにNSStatusItemが表示されているかどうかを検出する方法は?
私の Mac OS X アプリケーションには NSStatusItem があります。
正常に動作しますが、トップ メニュー/ステータス バーにアイテムが多すぎる場合 (たとえば、アプリに長いメニューがある場合、アイコンが多すぎる場合など)、ステータス アイテムが非表示になることがわかりました。システムによって。
アプリケーションでこれを検出するにはどうすればよいですか?
ありがとう
objective-c - 非ビューベースの NSStatusItem の画面位置を取得する
私のアプリケーションは NSStatusItem を利用しています。ステータス アイテムの画面座標を取得する必要がありますが、アイテムのカスタム ビューを設定することによって提供される機能は必要ないため、代わりに標準のアイコン ベースのビューを使用しています。
カスタム ビューを設定せずにステータス アイテムの位置を取得する方法はありますか?
macos - NSStatusItemの長さを取得します
アプリにNSStatusItemがあり、テキストを表示するように構成できます。このテキストは変更される可能性があり、問題は、長さが変更されるたびに、ステータスアイテム全体の長さが変更され、「幅のちらつき」が発生することです。
ステータス項目の長さをに設定し、NSVariableStatusItemLength
可能な限り長いテキストを挿入し、長さを元に戻し、それをステータス項目の一定の長さに設定することを考えました。length
ただし、の関数は実際の長さではなくNSStatusItem
単に戻るため、これにはまったく役に立たないように見えます。NSVariableStatusItemLength
それで、NSStatusItemがテキストとオプションでアイコンを保持するために必要な時間を事前に計算する別の方法はありますか?たとえば、アイコンとフォントの面/サイズはすべてのMacシステムで同じであることが保証されているので、システムで最適な長さを簡単に「測定」できますか?
macos - OS X メニューバーのクリックを検出しますか?
メニューバー全体のクリックを検出するトリックがあるかどうか興味があります。NSStatusItem または NSMenu のクリックを検出できることはわかっていますが、メニュー バーの空きスペースに関するイベントを探しています。
ドキュメントを見ると、それは不可能のようです。ただし、誰かがこの機能の回避策を持っているかどうか知りたいですか?
objective-c - NSStatusItem が非表示になったときに通知される
を使用するアプリがありますNSStatusItem
。小さな画面では、ステータス バーに十分なスペースがありません。ユーザーが多くのメニュー アイテムを含むアプリケーションに切り替えると、ステータス アイテムが非表示になります。これについて通知を受ける方法はありますか?
私がこれまでに試したこと:
NSNotification
解雇されたかどうかを確認しました:いいえstatusView
がビュー階層から削除されているかどうかを確認しました:いいえ- 私はチェックしました
isHiddenOrHasHiddenAncestor
:いいえ
ステータス アイテムの作成に使用するコードを次に示します。