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

objective-c - Cocoa AppKit - モーダル ウィンドウ (つまり、ポップアップまたはコンテキスト メニュー) を閉じて、現在ホバーしているボタンを押す

基本的に、システムのメニュー バーで提供される効果を作成したいと考えています。ユーザーがメニューの見出しの 1 つを押して、さまざまな見出しを移動すると、メニューが自動的に開きます。

問題は、ボタンのポップアップ メニューを開くと、ユーザーがもう一度クリックして閉じる必要があることです。ポップアップメニューがモーダルだと思うので、ランループ全体が保留中です。ユーザーが次のボタンに移動したときに [somePopUpMenu cancelTracking] を送信できるようにするにはどうすればよいですか?

NSWindow サブクラスで現在試しているコードは次のとおりです。ポイントは、マウスがボタンから出ると、次のボタンでマウスが自動的にクリック (左下/左上) され、タイマーが無効になり、ポップアップ メニューがキャンセルされることです。

ポップアップ メニューが開いていて、マウスが存在すると仮定すると、leftdown/leftup イベントが発生し (これは、mouseDown と mouseUp の NSLog にログを記録するので、これが機能することがわかっています)、タイマーは無効になりますが、ポップアップ メニューは引き続き表示されます。偽のイベントによって「クリック」された他のボタンには何も表示されません。また、全体がループに陥り、何らかの理由で取り乱した mouseDown/mouseUp が送信されます。

hookToMenu には適切な参照がありますが、ポップアップ メニューが別のオブジェクトで作成されていることに注意してください (デバッグ/ステップ スルーで確認しました)。

イベント追跡タイマーを中断しているのか、間違った方法で実行しているのかはわかりません。ウィンドウコントローラーでも試してみましたが、同じ結果が得られました。

これに関する助けをいただければ幸いです。

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

cocoa - Apple Pro アプリのように NSMenu をカスタマイズするには?

NSMenuでカスタマイズしたいNSMenuItemsので、Apple Pro アプリのように見えますか。

しかし、どうすればカスタマイズできNSMenuますか? 外観を変更する draw メソッドはありません。aNSViewを aに設定するとNSMenuItem、背景色を設定できますが、強調表示とメニュー処理が失われます。また、 の上下キャップはNSMenuカスタマイズできません。

このヒントしか見つかりませんでしたが、残念ながらコードはありませんでした。

白いメニューと白いメニュー項目を含む暗い TableView

少しでもお役に立てば幸いです!

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

cocoa - NSMenu の代替メニュー項目

カスタムビューNSMenuを含む があります。NSMenuItemsAlt ボタンを押すと、メニュー項目の外観の一部が (ビューを通じて) 変わるようにしたいのです。ドキュメントで見つけましsetAlternativeたがNSMenuItem、実際にはNSMenuItemsカスタムビューなしでしか機能しませんでした。カスタム ビューを設定するとすぐに、すべてのメニュー項目が表示されます。また、メニューが開いている間にキープレスイベントを取得しようとしました。他の実行ループのためNSApplication's sendEvent:、メニューが閉じられるまでイベントを受け取りません。したがって、入ってくるイベントを傍受することはできません。

メニューが開いているときに Alt キーが押されたときに、委譲またはサブクラス化によって通知を受け取る方法を知っている人はいますか?

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

cocoa - NSMenuの最初の項目が表示されない

プログラムで独自のNSMenuを作成し、ボタンを押すとポップアップします。

NSMenuItemsを作成し、NSMenuメソッドを使用して追加しますinsertItem:atIndex:

何らかの理由で、メニューのゼロの位置にあるアイテムは表示されません。これはメニューが機能することになっている方法ですか?

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

cocoa - シート表示時に使用できるメインメニュー

マウスでクリックされた、またはキーボードで呼び出されたメニュー項目にどのように反応しますか。例:CMD + Q?

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

cocoa - Cocoa: さまざまなメニュー項目からオブジェクト プロパティを変更する

観測されたオブジェクトの単一のプロパティをさまざまなメニュー項目から変更したい場合の経験則は何ですか (オプションのリストを考えてください)。

たとえば、車を 1 つのウィンドウに表示するアプリがあります。[黒、緑、青、赤、白など] のようないくつかのサブメニュー項目がある [色] というメニュー項目のあるメニューがあります。各サブメニュー項目が同じプロパティ (この場合は色) を異なる値に変更するように、この背後にあるメカニズムを実装するにはどうすればよいですか。

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

cocoa - WebViewにコンテキストメニューを追加する

簡単なものだと思います:

WebViewにコンテキストメニューを追加したい。

IBでは、NSMenuをNIBに追加し、それをWebViewのメニューアウトレットに接続して起動し、WebViewをコントロールクリックしてポップアップメニューを表示できるようになることを期待していました。コンテキストメニューで見たのは「リロード」だけです。同じ手順を実行できますが、メニューを他のビューに接続すると、期待どおりに機能します。

Webviewのメニューアウトレットに接続したときにメニューが同じように機能しないのはなぜですか?

ありがとう

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

objective-c - Apple は、開いている空港メニューをどのように更新しますか? (すでに開いているNSMenuを変更する方法)

NSMenu を開くステータスバー項目があり、デリゲート セットがあり、正しく接続されています (正常に動作し-(void)menuNeedsUpdate:(NSMenu *)menuます)。とは言っても、そのメソッドはメニューが表示される前に呼び出されるように設定されています。それをリッスンして非同期リクエストをトリガーし、後でメニューが開いている間に更新する必要がありますが、それがどのように行われるのかわかりません.

ありがとう :)

編集

わかりました、私は今ここにいます:

メニュー項目 (ステータス バー内) をクリックすると、NSTask を実行するセレクターが呼び出されます。通知センターを使用して、そのタスクがいつ終了するかをリッスンし、次のように記述します。

そして持っています:

メニューをクリックしてすぐにメニューに戻ると、この情報を含む更新されたメニューが表示されるため、このメソッドは確実に呼び出されます。問題は、メニューが開いている間は更新されないことです。

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

cocoa - NSMenu が追跡を開始しない

通常はバックグラウンドで(エージェントとして)動作する小さなココアアプリがあります。コンテキストメニューをポップアップできるようにしたい場合があります (現時点ではウィンドウや s.th. は表示されません)。

私はSnow Leopardのみをターゲットにしているので、これを試しました:

メニューは完全にポップアップ表示されますが、項目にマウス カーソルを合わせると、項目が強調表示されず、クリックできません。

menuItemSelected: メソッドは次のようになります。

私が間違っていることは何か分かりますか?

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

cocoa - NSMenuがアクティブ(表示)のときにどのように更新できますか?

私にはNSMenu、Cocoaアプリとのすべての通信が行われるインスタンスがあります。メニューが開いているとバックグラウンドが実行されないので、メニューがアクティブなときに強制的に更新するにはどうすればよいですか?