問題タブ [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 投票する
0 に答える
156 参照

cocoa - Carbon Application によるシステム ステータス バー項目の追加

Carbon アプリでシステム ステータス バーにステータス項目を追加することはできますか? 炭素の NSStatusBar に相当するものは何ですか? この目的のために Cocoa で dylib を作成し、Carbon で使用することは可能ですか? ありがとう。

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

objective-c - XMLデータのNSStatusBarタイトルが不規則に動作する

XMLparserからの文字列を使用してNSStatusBarの「setTitle」を実行したいと考えています。アプリケーションが起動すると、ステータスバーにタイトルが正しく表示されます。ただし、XMLデータが更新されると、タイトルには更新された文字列が表示されますが、タイトルはステータスバーの左側に移動します。XMLが更新された後、タイトルを同じ場所に残したい。

これを引き起こしているのは何ですか?

アプリケーションの開始時:

ここに画像の説明を入力してください

XMLデータが更新された後:

ここに画像の説明を入力してください

ここで、NSStatusBarを呼び出しています。

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

macos - ユーザーが Mac で他の NSStatusItem のメニューを開いた場合の通知

NSPanelメニューバーに配置され、ユーザーがステータス項目をクリックするとインスタンスが表示される Mac アプリを作成しています。別のステータス アイテムのメニューが開かれるたびにウィンドウを非表示にしたい。現在、私のパネルは開いたままです。次のようになります。

私のアプリは左側にあり、無限ステータスアイテムに添付されています

私のような他のアプリケーションが別のステータス アイテムのメニューを開くと閉じてしまうのを目にするので、どの通知が消えるのか知りたいと思っています。NSWindowDelegateとを調べましたがNSApplicationDelegate、通知が生成されていません。

何か提案はありますか?

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

objective-c - awakeFromNib中にNSPopoverを表示させる必要がありますか?

システムメニューバーにステータス項目があり、クリックするとポップオーバーが表示されます。アプリケーションを最初に起動したときにポップオーバーが自動的に表示されるようにしたいと思います。awakeFromNibメソッドにを追加しようとしました[self clickStatusBar:self]が、機能しません。誰もがこれを達成する方法を知っていますか?

これが私の現在の方法です:

applicationDidFinishLaunching:として追加してみました

しかし、私はのエラーを取得します -[AppDelegate bounds]: unrecognized selector sent to instance

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

cocoa - 奇妙な動作:スタックからステータスアイテムへのドラッグが機能しない

私のアプリケーションでは、メインウィンドウとステータスアイテムの両方にドラッグできます。

  • スタックからウィンドウにファイルをドラッグすると、完全に機能します。
  • Finderからウィンドウにファイルをドラッグすると、完全に機能します。
  • Finderからステータスアイテムにファイルをドラッグすると、完全に機能します。
  • スタックからステータスアイテムにファイルをドラッグすると、機能しません。

ウィンドウとステータスアイテムの両方で、まったく同じドラッグアンドドロップ処理コードが使用されます。

面白いことに、ファイルをスタックからステータスアイテムにドラッグすると、-(NSDragOperation)draggingEntered:(id)sender {NSPasteboard * pboard;が原因で、カーソルが期待どおりに変化します。NSDragOperation sourceDragMask; メソッドは期待どおりに呼び出されます。

ただし、ファイルがドロップされると、-(BOOL)performDragOperation:(id)sender {NSPasteboard * pboard; NSDragOperation sourceDragMask; メソッドは呼び出されません。

最初のメソッドの実装は次のとおりです。

ありがとう!

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

objective-c - NSPopover と NSTextField を使用した NSStatusItem

NSTextField を含む NSPopover を表示する NSStatusItem がありますが、テキスト フィールドは編集できませんが、Xcode ではそうです。現在、これは既知のバグであり、誰かがここに投稿した解決策があるようです。私は本当にこのバグを回避する必要があります。

便宜上、ここで答えを引用します。

主な問題は、キーボード イベントの動作方法です。NSTextField (および彼のすべてのスーパービュー) はキーボード イベントを受け取りますが、彼は何もしません。これは、ポップオーバーがアタッチされているビューが、キー ウィンドウにならないウィンドウにあるために発生します。そのウィンドウにアクセスすることはできません。少なくとも私にはできませんでした。したがって、解決策は、カテゴリを使用して、アプリケーション内のすべての NSWindow に対してメソッド canBecomeKeyWindow をオーバーライドすることです。

これにより、ポップオーバーが完全にレスポンシブになります。canBecomeKeyWindow に NO と応答する別のウィンドウが必要な場合は、いつでもサブクラスを作成できます。

私は自分が何をすべきかを本当に理解していません。これらの 2 つのファイル NSWindow+canBecomeKeyWindow (.h および .m) を作成するだけで済みますか? それは私にはうまくいかないからです。

これについてはよくわかりませんが、NSPopover を表示する NSWindow を実際に使用している場合にのみ機能しますか? NSWindow を使用していませんが、NSTextField を編集可能にするにはどうすればよいですか?

ありがとう。

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

macos - ポップオーバー付きの NSStatusItem

ステータスバーアプリを作ろうとしていますが、いくつか問題があります。ステータス項目がクリックされた後、カスタム ビューでポップオーバーを表示するにはどうすればよいですか? サンプルコードをいただければ幸いです。

0 投票する
3 に答える
847 参照

nsimageview - タイトルと画像の両方を NSStatusItem に追加する

テキストと画像の両方を NSStatusItem に追加する方法を見つけようとしています。これが私がやろうとしていることのモックアップです:

http://cl.ly/GjTO

statusIetm.view を使用してサブビューを追加しようとしましたが、うまくいかないことはわかっていても、タイトルと画像の両方のプロパティを楽しみのために設定しようとしました。カスタム ウィンドウをステータス アイテムに追加しようとしているのではなく、最初の画像にある温度と状態のアイコンを追加しようとしています。誰かが何か考えを持っているなら、私は彼らに聞いてみたい.

ありがとう

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

objective-c - Xcodeでグロー画像なしでNSStatusBarアイテムがグローする

ステータスバーのアイテムでこのようなものを光らせるにはどうすればよいですか?
ここに画像の説明を入力

私は別のpngでそれを行うことができることを知っていますが、ステータスバーの黒いアイコンしかなく、グローがない他のアプリケーションを見てきました。
どうやってやるの?
ありがとう

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

cocoa - nsmenu を開くと、メイン スレッドの Runloop がブロックされる

UI 要素にNSStatusItemと メニューが含まれるアプリケーションがあります。私の application 内では、NSTask非同期に を使用して何らかの操作を実行し、 を使用して取得した出力を使用し NSFileHandleReadCompletionNotificationてメニューを更新しています。しかし、メニューをクリックして開くたびに、メインの実行ループに入り NSEventTrackingRunLoopMode、通知の投稿が失敗します。したがって、基本的にメニューが開いていると、メインスレッドで操作は行われません。この投稿で同様の問題を見つけましたが、そこで受け入れられた解決策は役に立たないようです。NSNotificationCenterについて、 をブロックしてはNSRunloopDefaultModeならないことを理解しています。この動作を変更する方法はありますか??? 誰でも助けてもらえますか???