問題タブ [nsmenuitem]
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.
objective-c - クリック後にNSMenuItemからハイライトを削除しますか?
NSMenuItemのサブクラス(NSStatusMenuにあります)にカスタムビューを追加しました。これは、デフォルトでは、青/灰色の背景で「ハイライト」されないことを意味します。
次のコードを使用してこれを実装しました。
メニュー項目はうまく強調表示され、各項目をクリックすることもできます。ただし、それらをクリックすると、メニューを再度開いたときにisHighlighted状態が維持されているように見えます。
クリックすると、次にメニューを開いたときに強調表示された状態が削除されるように変更する方法はありますか?
objective-c - NSMenuItem の NSView がサブメニューで強調表示されない
サブクラスがいっぱいNSStatusItem
表示される があります。サブクラスでオーバーライドしてハイライトを実装すると、ルート メニューではすべて正常に動作しますが、ルート メニューのサブメニューでは何らかの理由で動作しません。サブクラスにいくつかのステートメントを入れましたが、サブメニューのビューに対しても呼び出されていないことに気付きました。何か案は?NSMenu
NSView
drawRect:
NSView
NSMenu
NSLog
NSView
drawRect:
drawRect:
ビューを強調表示するために使用しているコードを投稿できますが、呼び出されていないため、必要だとは思いません。他に役立つコードがあれば教えてください。
objective-c - NSMenuItem 内に NSView を持つ偽の NSWindow
始める前に、これは長い道のりのように思えることを知っていると言わなければなりませんが、試してみる価値があると思いました.
私が現在取り組んでいるアプリの 1 つは、Mac ステータスバー アプリです。メニューバーに NSStatusItem があり、クリックするとポップオーバーの外観を持つカスタム ウィンドウが表示されます (iPad のように、または Mac の Fantastical のように)。ビューは、そのウィンドウの背景色にクリア カラーを設定しています。ただし、下の写真でわかるように、これはまだうまくいきません。
- アイテムの上下にまだ小さな白い細い線があります
- クリア部分が不鮮明で、ぼかしフィルターをかけているようです
それ以外は、素晴らしく機能します。他の誰かがこれまでにこのようなことを試みたことがあるかどうかを知りませんでしたが、これが機能しない唯一の原因であると思われるこれら2つの問題を克服する方法を見つけました.
これを行う方法がない場合は、NSStatusItem のカスタム ビューを使用して画面上の座標を取得し、自分のウィンドウを NSStatusItem の下に配置する必要があります。
cocoa - ホスト メニューが表示されている間に NSMenuItem を更新する
進行状況を表示するために更新する必要があるNSMenuItem
ものがあります(タイムマシンがバックアップで行うように)。問題は、そのtitle
上に新しいものを設定してもNSMenuItem
、title
変更されないことです。
メニューを閉じて再度開くと実際には変化していますが、ユーザーが見ている間に更新したいと考えています。
また、アイテムを削除して再挿入しようとしましたが、結果はありませんでした。
ポインタはありますか?
objective-c - 再度切り替えるまで NSStatusItem にフォーカスし続ける方法
NSStatusItem を使用するアプリを構築しています。クリックすると NSStatusItem が開き、ユーザーが NSStatusItem を再度クリックするまで開いたままにしたいです。現時点では、メニューが開きますが、メニューから離れたり、別のアプリをクリックしたりすると、NSStatusItem はフォーカスを失います。ユーザーがクリックして閉じるまで、NSStatusItemのメニューを開いたままにしておきます。これまでのところ、NSStatusItem を作成するためのコードは次のとおりです。ありがとう
cocoa - NSMenu のサイズをコンテンツに合わせて動的に調整するにはどうすればよいですか?
このような標準の NSMenu があります
このメニューは、次のコードで作成されました。
ご覧のとおり、メニューの各オプションに「重複」項目があります。このアイテムのコピーはoption、メニューが表示されているときに (alt) キーを押すと表示されます。
問題は、このメニューのタイトルが元のサイズよりも大きく、元のサイズに戻らないため、代替メニュー項目を表示している間にメニューのサイズが変更され、次のようになることです:
どうすれば修正できますか?ありがとう
macos-carbon - カスタム ビューの上の NSMenuItem ギャップを削除する方法
次の投稿で説明されているものを探していました。
ステータス バー アイテムの NSMenu のリバース エンジニアリング
ピエール・バーナード提供のカーボンコードを試してみた
最初は、他のエラーと同じ「EXC_BAD_ACCESS on the line InstallControlEventHandler」というエラーが発生していました。私はコードをたくさんいじって、偶然解決策を見つけました。
InstallControlEventHandler 関数呼び出しを HIViewInstallEventHandler に置き換えたところ、すべて正常に動作しています。
これが他の人に役立つことを願っています。さらに説明が必要な場合はお知らせください。
素晴らしいコードを提供してくれた Pierre Bernard に感謝します。
ありがとう
cocoa - プログラムで NSMenuItems を含む NSMenu を作成しますか?
まず、この質問はおそらくすでに尋ねられていることを指摘しておきたいと思います。彼らからの回答が見つかりませんでした。
だから、私はプログラムでNSMenuとNSMenuItemをメインバーに作成しようとしているので、fe. NSMenu は File で、その中に 3 つの NSMenuItem、New、Open、Save があります。
しかし、何も機能していません。現在私が持っているものは次のとおりです。
しかし、何も起こりません。fileMenu を使用する必要があることをアプリケーションに伝える必要があると確信していますが、どうすればそれを行うことができますか?それが問題ではない場合、何が問題なのでしょうか? 私はこのようなことにはかなり慣れていませんが、学ぶことに興味があるので、どんなヒントでも何もないよりはましです!
cocoa - NSMenuから動的NSMenuItemを削除するタイミング
いくつかの動的アイテムを含むNSMenuがあります。これらのアイテムはNSMenuDelegateのmenuNeedsUpdateメソッドで作成され、それぞれにrepresentedObjectが割り当てられます。オブジェクトグラフをトリミングし、メニューを閉じたときにすべての動的アイテムを削除して(そしてメニューを再度開いたときにそれらを再作成することで)少しのメモリを取り戻すことを望んでいます。私が抱えている問題は、これをどこでどのように処理すべきかを正確に知ることです。
ドキュメントには、NSMenuのmenuDidCloseはメニューの内容を更新するのに適した場所ではないと記載されています。NSMenuDidEndTrackingNotificationをリッスンする通知を設定し、NSMenuのremoveItem:メソッドを呼び出して、その時点で動的アイテムを削除しています。これはこの状況を処理する正しい方法ですか?
最後に、NSMenuItemでremoveItemを呼び出すと、それに割り当てられている可能性のあるカスタムビュー、およびサブメニューが正しく無効になることを保証できますか?