問題タブ [nsmenu]
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 - Windows の同期 TrackPopupMenu に対応する Cocoa の手法はありますか?
rightMouse イベントに応答して、コンテキスト メニューを表示し、それを実行して、選択されたメニュー項目に応答する関数を呼び出したいと考えています。Windows では、TPM_RETURNCMD フラグを指定して TrackPopupMenu を使用できます。
これをCocoaで実装する最も簡単な方法は何ですか? NSMenu:popUpContextMenu は、指定された NSView にイベントを投稿したいようです。ダミー ビューを作成し、イベントを待ってから戻る必要がありますか? もしそうなら、メインに戻っていない場合、どうすればイベントを「待機」またはフラッシュできますか?
objective-c - Cocoa のメイン メニューを変更するにはどうすればよいですか?
それぞれ異なるメインメニューを表示する必要がある2種類のウィンドウを持つココアアプリがあります。
私の MainMenu.xib には、デフォルトの MainMenu があります。Window1.xib には Window1 があり、Window2.xib には Window2 があり、それが MainMenu です。
最初のウィンドウを開くとデフォルトのメニューが表示され、Window2 を開くとメニューが表示されます。
ただし、Window1 に戻すと、まだ Window2 のメニューが表示されます。表示されるメニューをキー ウィンドウに追従させるにはどうすればよいですか?
objective-c - ユーザーがメニュー項目を選択した後、NSPopUpButton を開いたままにするにはどうすればよいですか?
カスタム ビューを持つステータス アイテムの NSMenu を提供する NSPopUpButton があります。ポップアップ ボタンはリンクのリストを表示します。ユーザーがリストからリンクを選択すると、そのリンクがユーザーのブラウザー (バックグラウンド) に表示されます。
当然、ユーザーがリンクを選択するたびにメニューが閉じます。
これを変更したいと思います: ユーザーがさまざまなリンクをクリックしている間、メニューを開いたままにしておきたいのですが、それらはすべてバックグラウンドで開くことができます。ユーザーが別の場所をクリックすると、メニューが消えます。
これはどのように達成できますか?NSMenuItem をサブクラス化し、マウス クリックを何らかの方法でインターセプトする必要がありますか? ポップアップされたメニューに透明な NSView を重ねて、もう一度クリックを傍受しますか? 私はこれらの提案を気軽に行いますが、これらのいずれかを実装するのに問題があります...オーバーライドの正しいメソッドへのポインタをいただければ幸いです。
cocoa - 強調表示された NSMenuItem を更新するとアプリがクラッシュする
ヘイホー!
のように小さなアプリを実行しLSUIElement
ていNSStatusItem
ます。
popupmenu のメニュー項目がコードによって更新されることがあります。しかし、更新されたNSMenuItem
(またはそのスーパーメニュー) が「強調表示」されると、アプリは何もログに記録せずにクラッシュします。
何か考えはありますか?回答ありがとうございます。
cocoa - 動的アクションを含む NSMenu を使用する方法
ファイルを送信できる接続されたデバイスを一覧表示する Windows エクスプローラーにある [送信先] オプションと同様のオプションを使用して NSMenu を作成したいと考えています。
私の調査から、関数にパラメーターを送信するセレクターを定義することもできないように思われるため、@selector(@"sendToVolume:1")
. では、アイテムの数が不明な場合に、どのアイテムがクリックされたかに基づいて、メニューに別のタスクを実行させるにはどうすればよいでしょうか?
objective-c - NSToolbarItem にポップアップ メニューを追加する方法は?
NSToolbarItem からポップアップ メニューを開こうとしています。この例に従ってみましたが、NSToolbar と NSToolbarItem は NSView ではなく NSObject から継承されるため、そのクラス メソッドを使用できません。
カスタム ビューを作成する以外に、NSToolbarItem からポップアップ メニューを開く最良の方法は何ですか?
cocoa - 列挙されたプロパティをバインドする最もクリーンな方法は何ですか?
列挙型の各値の項目を持つメニューがあります。
メニュー:
列挙型:
プロパティ:
これを配線する最もクリーンな方法は何ですか? 私には 2 つのアイデアがありますが、どちらも不十分だと思います。
1 番目のアイデア: 各値 ( など) のプロパティを作成しますsortMethodIsDueDate
。setSortMethodIsDueDate:
これらのプロパティは呼び出しsetTaskSortMethod:
て呼び出しますvalueDidChange:@"sortMethodIsDueDate"
。その後、メニュー項目はこれらのプロパティにバインドされます。これは大変な作業のようです。
2 番目のアイデア: 各メニュー項目を に接続してから、メニュー項目-(IBAction)updateSortMethod:(id)sender
を繰り返し、 に応じて値を設定しますsender
。このアプローチはtaskSortMethod
、コードの別のセクションによって が変更されるまでは問題ありません。変更された時点で、メニューを と同期させるためにコードを追加する必要がありますtaskSortMethod
。
VとCの分離が優れているため、最初のアプローチに傾いています。
より良いアイデアはありますか?
objective-c - アクションをキーボードショートカットに関連付ける方法は?
パネルを呼び出すIBActionがあります。キーボードショートカットを使用してそのアクションを呼び出したいのですが、その方法がわかりません。
メニュー項目を作成し、アクションを項目に関連付けてから、その項目にショートカットを割り当てるのが1つの方法だと思いますが、まだメニューを作成していません。
何かアイデアや提案はありますか?
nsview - カスタム ビューを使用したカスタム NSStatusItem - NSWindow、NSView、カスタム NSMenuItem を使用しますか?
Spotlight、CoverSutra、およびそのタイプの他のアプリのように動作する LSUIElement アプリを作成しようとしています。NSWindow をポップアップするカスタム NSStatusItem を作成できましたが、問題は、現在フォーカスがあるアプリがカスタム NSWindow にフォーカスすることです。
私は Matt Gemmell の例 ( http://mattgemmell.com/2008/03/04/using-maattachedwindow-with-an-nsstatusitem )に基づいています。
たとえば、Safari で Spotlight アイコンをクリックすると、現在の Safari ウィンドウはグレー表示されず、フォーカスされたままになります。Spotlight で ESC を押すと、フォーカスが Safari ウィンドウに戻ります。
カスタム NSWindow でこれを行うことができませんでした。ウィンドウにフォーカスを戻すには、ウィンドウをクリックして戻す必要があります。
だから私はこれを達成するためにどのルートに行くべきか知りたいです。ソリューションは、カスタム NSMenuItem を持つ NSWindow、NSPanel、NSMenu ですか?