問題タブ [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.

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

cocoa - NSMenu の NSView -- キーボード コマンドを受け入れるための "key" の作成方法 [具体的には、return]

メニュー項目内のビューにテキスト フィールドとボタンがあります。ボタンは、テキスト フィールド内の文字列を関数に送信します。これは正常に機能します。ただし、ボタンのキーを「戻る」に相当するものにも設定しました。おそらくメニューが「キー」ウィンドウではないため、キーコマンドが取得されていません。

ウィンドウをキー ウィンドウにする方法 (makeKeyAndOrderFront) を知っています。メニュー内に存在するビューに相当するものは何ですか?

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

objective-c - アクションセレクタープリセットを使用してNSMenuにアイテムを追加する

私はObj-C/Cocoaプログラミングに不慣れで、メニュー項目をNSMenuインスタンスに動的に追加しようとして問題が発生し、挿入時に項目アクションセレクターがすでに設定されています。

動的メニュー項目をうまく追加できますが、メニューから項目をクリックしてもアクションセレクターはトリガーされません。

以下の最初の行は、メニュー項目を追加するために使用しているコード行です。action:(SEL)aSelectorを「openEchowavesURL」関数に設定するように設定できます。

この関数は同じコントローラークラスファイルにあり、以下に関数定義を含めました。

間違ったセレクター構文または何かを呼び出しているだけですか?または、クリックしたときにメニュー項目がセレクターを呼び出すようにするための秘訣は何ですか?



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

objective-c - ドキュメントコントローラからNSMenuにデータを入力できません

MainMenu.xibとMyDocument.xibがあります。ドキュメントコントローラーからいくつかのNSMenuItemを動的に入力する必要がありますが、MainMenu.xibからNSMenuItemにアクセスする方法がわかりません。

NSObjectをMainMenu.xibに追加して、それをドキュメントコントローラーのインスタンスにしようとしましたが、コントローラーにあるNSArrayControllerからNSMenuItemを設定できません。

これをコードで行う必要がありますか、それともこれに取り組む別の方法がありますか?

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

cocoa - アプリケーションメニュー項目の無効化/有効化

メニュー処理の非常に基本的なことを学ぼうとしています。私のテストアプリのメニューバーには、「TestApp」、「File」、「Help」の3つのメニューがあります。次のように呼び出すだけで、これらのメニューを完全に削除できることがわかりました。

ただし、一時的に無効にしたい(グレー表示にしたい)だけです。これを行うための同様に簡単な方法はありますか?

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

cocoa - popUpMenuPositioningItem:atLocation:inView:10.5と同等のものを探しています

さまざまなシナリオで画面にコンテキストメニューを表示する必要があるアプリケーションに取り組んでいます。私が書いている関数では、NSWindowsまたはNSViewsにアクセスできません。この関数は10.6で完全に機能するため、popUpMenuPositioningItem:atLocation:inViewを使用したいと思います。ただし、10.5をサポートする必要があるため、この機能は使用できません。

ドキュメントに記載されているように、私が最も興味を持っている機能は次のとおりです。

ビューがnilの場合、場所は画面座標系で解釈されます。これにより、どのウィンドウからも切り離されたメニューをポップアップ表示できます。

基本的に、画面上の場所を指定してコンテキストメニューを表示する必要がありますが、関連するビューはありません。

10.5でこれを達成する方法はありますか?

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

cocoa - Cocoa アプリのメイン メニューの NSMenu (ネストされたサブメニュー) の強制更新

  1. メインメニューのウィンドウアイテムサブメニューとしていくつかのサブメニューを挿入しました
  2. NSObject から継承されたオブジェクトのインスタンス (クラス名は MenuController と仮定しましょう) があり、NSMenuDelegate メソッドから 2 つをサポートしています。 – numberOfItemsInMenu: – menu:updateItem:atIndex:shouldCancel:
  3. このインスタンスは、実行時に起動するために Blue-Object として NIB に追加されました
  4. サブメニューのデリゲートとして構成された手順 2 ~ 3 のオブジェクト (手順 1)

これで、実行時にサブメニュー コンテンツを提供できるようになりました。

次に、次のことを行います。プロトコルとデリゲートを介して実際のサブメニューにマップされた配列 (メニュー タイトルを含む MenuController 内) に新しい項目を追加したり、古い項目を削除したりできます。すべて正常に動作します。ただし、動的なメニュー項目にショートカットを割り当てるのが好きです。CMD-1、CMD-2、CMD-3など

ウィンドウ / MySubmenu / MyItem1 CMD-1、MyItem2 CMD-2、...

したがって、いくつかのアイテムを呼び出すには、Window / MySubmenu / MyItem に移動してマウスでクリックしたくないので、CMD-3 などのショートカットを 1 つだけ押してアイテムを呼び出します。

わかりました、定期的に期待どおりに動作します。しかし、通常、ネストされたサブメニューの変更についてメイン メニューに通知する方法はありません。問題を再現するための 1 つの安定した方法 - 削除済みの代わりに新しいアイテムを作成した後、いくつかのアイテムを削除して、それに割り当てられた古いショートカットを押してみてください - ビンゴ - 現在のサブメニュー コンテンツを表示するために Window / MySubmenu に移動する前にショートカットが機能しません.

メインメニューにサブメニューを強制的に再構築する方法がわかりません...私は試しました: [[NSApp mainMenu] update] と、NSMenuDidAddItemNotification、NSMenuDidRemoveItemNotification、NSMenuDidChangeItemNotification を送信するために NSNotificationCenter を使用したゲーム

サブメニューへのアウトレットを試み、メソッドを明示的に更新するようにしました-方法はありません... AppKitがデリゲートメソッドを呼び出す場合があります-そして、何も呼び出したくない場合もあります。ランダムな戦略のように見えます。

「何らかの呼び出し」の後、サブメニューが内部配列の変更後に実際の状態になることを確認するにはどうすればよいですか?

0 投票する
4 に答える
5927 参照

cocoa - How to add multiple menu items with the same title to NSPopUpButton(NSMenu)?

As docs say it's impossible to add two menu items to NSPopUpButton if they both have the same title. I was trying to add menu items to [popupButton menu], but with no luck. I was also trying to create a new menu, add items to it and then use [popupButton setMenu:newMenu], but no. Menu always display only one item per name.

But I know it should be possible, if you try to create a smart playlist in iTunes, you could select "Playlist" from the left popup button, "=" from the middle, and the right one will hold menu items for every playlist in iTunes EVEN if they have the same title. So how do they do it?

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

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

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

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

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

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

cocoa - NSMenuItemがsetIndentationLevelに応答していません:

setIndentationLevel:NSMenuItemを呼び出すと、何も起こりません。3indentationLevelに設定した後で呼び出すと、本来のように3が返されます。Dockメニューにメニュー項目を追加していますが、何も変更されていません。