問題タブ [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 に答える
1350 参照

cocoa - NSStatusItem を右クリックします

私はNSStatusItemアイテムを右クリックしてメニューをポップアップしたいと思っています。NSView をサブクラス化し、- (void)rightMouseDown:(NSEvent *)eventメソッドを上書きしました。- (void)mouseDown:(NSEvent *)eventモディファイアフラグを見るためにも実装しました。私の問題は、ビューがイベントを受信しないことNSRightMouseDownです。そして、私は理由を知りませんか?このイベントを取得する方法はありますか? 当然ステータスアイテムにカスタムビューを追加しました。

- 更新 -
追加情報: カスタム ビューのサブビューに NSImageView を追加しました。

- UPDATE 2 -
追加情報:NSMenuDelegateプロトコルに準拠しています。

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

cocoa - NSMenu 最近のリストを作成する方法

私は誰かのために小さな URL 短縮アプリケーションに取り組んでおり、最近短縮された URL をすべて含む、Droplr のものと同様のリストが必要です。リストは、NSStatusItem に添付されたメイン メニューのサブメニューである必要があります。

URL が短縮されるたびにそのリストに項目を追加する必要があり、クリックするとその中のリンクが通知されるようにしたいと考えています。リストには、最近使用した URL が約 10 個まで含まれている必要があります。

また、アプリを再起動したときにリストが表示されるように、リストを保存する方法も必要です。Core Data を使用するのは得策ではないと思いますが、何を使用すればよいかわかりません。

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

objective-c - NSStatusItemの画像として不確定なステータスインジケータを使用するにはどうすればよいですか?

であるアプリケーションがありますNSStatusItem

いくつかの異なるモードがあり、それぞれが外部プロセスを起動する必要があります。その間、アイコンは単に強調表示され、フリーズしているように見えます。

-setImage:この方法(または妥当なファクシミリ)を使用して、WebアプリケーションやOSX全体で一般的に見られる「スピナー」の線に沿って何かを表示したいと思います。

これを実現するためのネイティブな方法はありますか(たとえば、NSProgressIndicator?のインスタンス)、または一連の画像を循環してアニメーションを手動で表示する必要がありますか?

どちらの場合でも、どのように実装しますか?

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

cocoa - NSMenuItem に再描画を強制する方法は?

NSSearchField を使用したカスタム ビューを持つカスタム ステータス バー メニューを実装しています。検索結果に応じてメニュー項目の数を更新しています。メニュー項目の数は、NSSearchField のユーザー タイプとして変更されます。結果の数が同じままである場合、アイテムのタイトルが更新 (再描画) されないことに気付きました。それらを強制的に再描画するにはどうすればよいですか?

この関数では、メニューを再構築します。最初にすべてのアイテムを削除し、検索結果に従って新しいアイテムを作成します。

ありがとう、

ナバ

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

objective-c - NSMenuItem 時間とともに変化するタイトル。

タイトルが時間とともに変化する NSStatusItem を実装したいと思います。私の最終的な目標は、設定した画像の横にあるメニュー バーにカウントダウン タイマーを表示することです。多分私はこれについて間違った方法で進んでいます。しかし、タイマーを表す、時間の経過とともに絶えず変化する文字列が既にあります。作成したメニューレットに設定した画像の横にその文字列を配置する方法を見つけようとしています。

setTitle メソッドを複数回呼び出してみましたが、うまくいかないようです。オブジェクトの初期化の前に機能するのは、setTitle の最初の呼び出しだけです。その後、何も起こりません。タイマーを変更するたびに NSStatusItem オブジェクトを解放して再作成できると思いますが、それは非常に非効率的です。それが機能するかどうかさえわかりません。

また、setToolTip メソッドを使用してタイマーのカウントダウンを表示することも検討しました。しかし、それは setTitle メソッドと同じようです。一度設定すると、NSStatusItem オブジェクトを解放して新しいオブジェクトを作成するまで変更できません。

任意の提案をいただければ幸いです。

ありがとうございました

デイブ

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

cocoa - NSStatusItemアプリでNSOpenPanelを表示する

NSWindowを持たないステータスアイテムアプリを書いています。ユーザーがステータス項目をクリックしたときにNSOpenPanelをプルアップします。アプリがNSWindowを利用しない場合、これをどのように行うのでしょうか?

ありがとう。

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

cocoa - Cocoa: NSStatusItem を右クリック

私は小さなプロジェクトを Mac に移植する必要がある .Net 開発者なので、Objective C についてほとんど何も知りません。

左クリックまたは右クリック/ctrl + クリックに応じて、1 つまたは別のウィンドウを開くステータス メニュー プログラムを構築しようとしています。これが私が持っているもので、左クリックでのみ機能します(明らかに):

解決策は、openWin() 関数の if ステートメントを使用して、どのボタンがクリックされたか (または ctrl が押されているか) を判断してから、適切なコードを実行するか、メニューに左右の両方を認識させるように思われます。クリックします。しかし、私がそうしようとしたとき、これらのどちらも機能しませんでした。

前もって感謝します。

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

cocoa - COCOA: 外部コードの起動時に NSStatusitem アイコンが消える

私は .Net 開発者で、小さなプログラムを Mac OS X に移植する必要があります。これはほぼ完了しています (一部はこのサイトの人々のおかげです、ありがとう!)。

ステータスバーにあるツールを作成しています。クリックすると、いくつかのリンクまたはボタンを含むウィンドウが開きます。リンクまたはボタンをクリックすると、Web サイトまたは外部プログラムが開きます。問題は、これらの外部コマンドの 1 つを起動すると、ステータス バーのアイコンが消えることです。さらに興味深いのは、アイコンが表示されるステータス バーのスペースがまだ応答していることです。つまり、領域をクリックすると (アイコンが表示されていなくても)、コードが実行されてウィンドウが開きます。

現在のコードは次のとおりです。

トレイ.m

トレイ.h

MyView.h

MyView.m

画像/ボタンがクリックされると openActMon が実行され、画像はアイコンがクリックされると開かれるtrayWinウィンドウに配置されます。この時点で、Activity Monitor は正常に起動しますが、StatusBar のアイコンが消えます。

[super setNeedsDisplay:YES] を openActMon に入れてみましたが、役に立ちませんでした。そして、openActMon に [view setNeedsDisplay:YES] を追加すると、未宣言で応答しました。

前述したように、私は Objective-C のコーダーではなく、何か小さなものを移植する必要がある .Net であるため、このコードをすべて提供しました。これが将来他の人に役立つことを願っています。これの多くは、さまざまなフォーラムやサイトから寄せ集めたり、StackOverflow のヘルプから得たりしたものです。誰かが助けてくれることを願っています。

前もって感謝します!

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

objective-c - NSStatusItemでのonMouseOverとonMouseOutの処理

すべての中にいくつかの項目があるステータスメニューがあります。すべてのステータスアイテムはカスタムであり、内部にカスタムビューがあります。

ユーザーのマウスがNSView(アイテム内)またはステータスアイテム自体の上にあることを検出するにはどうすればよいですか?

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

objective-c - ペン先からメニューをロードする

Main.xibがあり、メインウィンドウ、メインメニュー、およびどこにも接続されていない「StatusMenu」という名前の2番目のメニューがあります。

私のアプリケーションにはNSStatusItemがあり、それを押してそのセカンダリメニューを表示したいと思います。

どうすればこれら2つを接続できますか?

ありがとう