問題タブ [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.
cocoa - Carbon Application によるシステム ステータス バー項目の追加
Carbon アプリでシステム ステータス バーにステータス項目を追加することはできますか? 炭素の NSStatusBar に相当するものは何ですか? この目的のために Cocoa で dylib を作成し、Carbon で使用することは可能ですか? ありがとう。
objective-c - XMLデータのNSStatusBarタイトルが不規則に動作する
XMLparserからの文字列を使用してNSStatusBarの「setTitle」を実行したいと考えています。アプリケーションが起動すると、ステータスバーにタイトルが正しく表示されます。ただし、XMLデータが更新されると、タイトルには更新された文字列が表示されますが、タイトルはステータスバーの左側に移動します。XMLが更新された後、タイトルを同じ場所に残したい。
これを引き起こしているのは何ですか?
アプリケーションの開始時:
XMLデータが更新された後:
ここで、NSStatusBarを呼び出しています。
macos - ユーザーが Mac で他の NSStatusItem のメニューを開いた場合の通知
NSPanel
メニューバーに配置され、ユーザーがステータス項目をクリックするとインスタンスが表示される Mac アプリを作成しています。別のステータス アイテムのメニューが開かれるたびにウィンドウを非表示にしたい。現在、私のパネルは開いたままです。次のようになります。
私のような他のアプリケーションが別のステータス アイテムのメニューを開くと閉じてしまうのを目にするので、どの通知が消えるのか知りたいと思っています。NSWindowDelegate
とを調べましたがNSApplicationDelegate
、通知が生成されていません。
何か提案はありますか?
objective-c - awakeFromNib中にNSPopoverを表示させる必要がありますか?
システムメニューバーにステータス項目があり、クリックするとポップオーバーが表示されます。アプリケーションを最初に起動したときにポップオーバーが自動的に表示されるようにしたいと思います。awakeFromNibメソッドにを追加しようとしました[self clickStatusBar:self]
が、機能しません。誰もがこれを達成する方法を知っていますか?
これが私の現在の方法です:
applicationDidFinishLaunching:
として追加してみました
しかし、私はのエラーを取得します
-[AppDelegate bounds]: unrecognized selector sent to instance
cocoa - 奇妙な動作:スタックからステータスアイテムへのドラッグが機能しない
私のアプリケーションでは、メインウィンドウとステータスアイテムの両方にドラッグできます。
- スタックからウィンドウにファイルをドラッグすると、完全に機能します。
- Finderからウィンドウにファイルをドラッグすると、完全に機能します。
- Finderからステータスアイテムにファイルをドラッグすると、完全に機能します。
- スタックからステータスアイテムにファイルをドラッグすると、機能しません。
ウィンドウとステータスアイテムの両方で、まったく同じドラッグアンドドロップ処理コードが使用されます。
面白いことに、ファイルをスタックからステータスアイテムにドラッグすると、-(NSDragOperation)draggingEntered:(id)sender {NSPasteboard * pboard;が原因で、カーソルが期待どおりに変化します。NSDragOperation sourceDragMask; メソッドは期待どおりに呼び出されます。
ただし、ファイルがドロップされると、-(BOOL)performDragOperation:(id)sender {NSPasteboard * pboard; NSDragOperation sourceDragMask; メソッドは呼び出されません。
最初のメソッドの実装は次のとおりです。
ありがとう!
objective-c - NSPopover と NSTextField を使用した NSStatusItem
NSTextField を含む NSPopover を表示する NSStatusItem がありますが、テキスト フィールドは編集できませんが、Xcode ではそうです。現在、これは既知のバグであり、誰かがここに投稿した解決策があるようです。私は本当にこのバグを回避する必要があります。
便宜上、ここで答えを引用します。
主な問題は、キーボード イベントの動作方法です。NSTextField (および彼のすべてのスーパービュー) はキーボード イベントを受け取りますが、彼は何もしません。これは、ポップオーバーがアタッチされているビューが、キー ウィンドウにならないウィンドウにあるために発生します。そのウィンドウにアクセスすることはできません。少なくとも私にはできませんでした。したがって、解決策は、カテゴリを使用して、アプリケーション内のすべての NSWindow に対してメソッド canBecomeKeyWindow をオーバーライドすることです。
これにより、ポップオーバーが完全にレスポンシブになります。canBecomeKeyWindow に NO と応答する別のウィンドウが必要な場合は、いつでもサブクラスを作成できます。
私は自分が何をすべきかを本当に理解していません。これらの 2 つのファイル NSWindow+canBecomeKeyWindow (.h および .m) を作成するだけで済みますか? それは私にはうまくいかないからです。
これについてはよくわかりませんが、NSPopover を表示する NSWindow を実際に使用している場合にのみ機能しますか? NSWindow を使用していませんが、NSTextField を編集可能にするにはどうすればよいですか?
ありがとう。
macos - ポップオーバー付きの NSStatusItem
ステータスバーアプリを作ろうとしていますが、いくつか問題があります。ステータス項目がクリックされた後、カスタム ビューでポップオーバーを表示するにはどうすればよいですか? サンプルコードをいただければ幸いです。
nsimageview - タイトルと画像の両方を NSStatusItem に追加する
テキストと画像の両方を NSStatusItem に追加する方法を見つけようとしています。これが私がやろうとしていることのモックアップです:
statusIetm.view を使用してサブビューを追加しようとしましたが、うまくいかないことはわかっていても、タイトルと画像の両方のプロパティを楽しみのために設定しようとしました。カスタム ウィンドウをステータス アイテムに追加しようとしているのではなく、最初の画像にある温度と状態のアイコンを追加しようとしています。誰かが何か考えを持っているなら、私は彼らに聞いてみたい.
ありがとう
objective-c - Xcodeでグロー画像なしでNSStatusBarアイテムがグローする
ステータスバーのアイテムでこのようなものを光らせるにはどうすればよいですか?
私は別のpngでそれを行うことができることを知っていますが、ステータスバーの黒いアイコンしかなく、グローがない他のアプリケーションを見てきました。
どうやってやるの?
ありがとう
cocoa - nsmenu を開くと、メイン スレッドの Runloop がブロックされる
UI 要素にNSStatusItem
と メニューが含まれるアプリケーションがあります。私の application 内では、NSTask
非同期に を使用して何らかの操作を実行し、 を使用して取得した出力を使用し NSFileHandleReadCompletionNotification
てメニューを更新しています。しかし、メニューをクリックして開くたびに、メインの実行ループに入り NSEventTrackingRunLoopMode
、通知の投稿が失敗します。したがって、基本的にメニューが開いていると、メインスレッドで操作は行われません。この投稿で同様の問題を見つけましたが、そこで受け入れられた解決策は役に立たないようです。NSNotificationCenter
について、 をブロックしてはNSRunloopDefaultMode
ならないことを理解しています。この動作を変更する方法はありますか??? 誰でも助けてもらえますか???