問題タブ [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 - ドキュメント ベースのアプリケーションでメニュー項目を接続する
私はすでにこのトピックについていくつか質問しましたが、その方法について実際の回答は得られていません (実際に「Tumbleweed バッジ」を受け取りました 笑)。
ドキュメント ベースのアプリケーションを使用しています (つまり、Menu.Xib は MyDocument.Xib とは別のものです)。
「太字」ボタンまたはスペル チェック ボタン (Menu.xib ([書式] > [フォント] などの下) にリストされている項目) を MyDocument (主要なインターフェイス) に追加したいとします。これを行う方法がわかりません。
どんな助けでも大歓迎です(うまくいけばすぐに答えに報います。これは数週間私を困惑させました)。
MyDocument.Xib に Font Manager を追加してその方法で接続しようとしましたが、Bold ボタンは有効になるだけで、無効にはなりません。さらに、スペル チェックなどは、フォント マネージャーを介して有効にすることはできません。
これを行うためのより良い方法が必要です。
Apple のドキュメントは信じられないほどあいまいです。
cocoa - Cocoaバインディング-NSMenuItemの状態をカスタムBOOLにバインドしようとしています
私のMacアプリでは、[モデルm]は合成されたBOOLプロパティとivarrollAnimationsを持つカスタムオブジェクトです。また、animationsItemはNSMenuItemオブジェクトです。私のanimationsItemの状態を[Modelm]のrollAnimationsプロパティとivarにバインドしたいと思います。双方向バインディングが理想的です(どちらかのプロパティを変更するともう一方も変更されます)が、それが面倒な場合(サイクルを保持するなど)、メニュー項目を変更するとrollAnimationsが変更されるように一方向バインディングに落ち着きます財産。
これがコードスニペットです。動いていない。私は何が欠けていますか?
cocoa - NSMenuItem カスタム ビューが keyEquivalent に応答しない
カスタムNSView
を に設定NSMenuItem
して、独自の描画とレンダリングを行いました。ただし、に割り当てられた「keyEquivalent」NSMenuItem
は応答していないようです。描画とアクションの処理は自己処理する必要があることは理解していますが、何をしても keyEquivalent リクエストをキャプチャできないようです。NSApplication の sendEvent をサブクラス化しようとしましたが、アプリがNSStatusBarItem
(LSUIElement) であり、NSEventTrackingRunLoopMode
(メニューがダウンしている場合) からのイベントが NSApplication の sendEvent に到達しないため、機能しません。
それから私は使用してみました:
メインメニューのデリゲートをコントローラーに設定しても、これは呼び出されないため、これも機能しません。
カスタム ビューを使用しているときに NSMenuItems で「keyEquivalent」イベントをキャプチャする方法について誰か考えがありますか?
ありがとう!
cocoa - アプリのメイン メニューの項目のタイトルを設定しますか?
Cocoa アプリのメイン メニューのいくつかの項目のタイトルを変更しようとしています。IB内と、アプリのapplicationDidFinishLaunchingWithOptions:メソッドからプログラムで設定しようとしました。いずれにせよ、私の NSMenuItem オブジェクトの title プロパティは変わります。しかし、アプリの実行中に画面上部のアイテムの実際のタイトルに変更が反映されません。
誰が何が起こっているのか説明できますか? どうすればこれを変更できますか?
編集: データ構造は、IB がセットアップするデフォルトのものです。
firstItem と subMenu の両方のタイトル プロパティを目的のタイトルに変更しました。それでも、デフォルトのものはまだ表示されます。
nsuserdefaults - NSUserDefaultsのブール値にバインドされたNSMenuItemの状態が同期を維持していません
メインメニュー(MainMenu.xib)に「ワードラップ」というタイトルのNSMenuItemがあります。その値は、XIBでもインスタンス化されている、共有ユーザーのデフォルトコントローラーにバインドされています。また、選択すると次のアクションが送信されます。
アプリデリゲートの+initialize
メソッドでは、標準ユーザーのデフォルトにデフォルト値を入力します。
私の問題は、NSMenuItemの状態がユーザーのデフォルトと同期していないことです。何が起こるかのタイムラインは次のとおりです。
アプリの起動:
- ワードラップメニュー項目がチェックされていません
wordWrapIsEnabled
いいえです- ワードラップはオフです
ワードラップが初めて選択されたとき:
- チェックされたワードラップメニュー項目
wordWrapIsEnabled
NO (BZZZT WRONG)- ワードラップがオフです(BZZZT WRONG)
2回目のワードラップが選択された場合:
- ワードラップメニュー項目がチェックされていません
wordWrapIsEnabled
はいです(BZZZTが間違っています)- ワードラップがオンになっています(BZZZTが間違っています)
フリップフロップ広告を無限に繰り返します。
プロジェクトににアクセスするものが他にないことを確認しましたwordWrapIsEnabled
。セレクターの呼び出しとwordWrapIsEnabled
バインディングを介したの設定の間に競合状態が発生する可能性はありますか?バインドされた値が最初に設定されると想定してきました。
objective-c - NSMenuItem が有効になっていませんか?
menu と呼ばれる NSMenu に存在する history と呼ばれる NSMenuItem があります。プログラムの起動時に履歴にサブメニューがないため、無効になっています。それからある時点で、履歴のサブメニューが必要になるので、それを作成して履歴のサブメニューにします。サブメニューがあることを示す矢印が履歴の横に表示されます。しかし、履歴はまだ無効になっています。setEnabled を試しましたが、うまくいきません。助けてください。ここに私のコード:
これは、メニューに NSMenuItem が表示されるように、メニューと履歴を作成するときです。
この時点で、履歴は無効 (グレー表示) になっています。次に、プログラムのどこかに、履歴のサブメニューが必要です。
履歴の横に矢印が表示されるようになりましたが、まだグレー表示されています。
助けてください、私は過去2時間これを理解しようとしてきました。ありがとう。
objective-c - NSMenuItem のカスタム ビューで編集可能な NSTextField
Spotlight と同様に、編集可能な NSTextField を含めたいサブクラス化された NSView があります。
テキストフィールドを選択して強調表示するのが非常に困難です。テキストフィールドの編集領域をすばやくすばやくクリックすると、実際にテキストを入力できますが、最重要ではないアプリのフィールドにテキストを追加しているかのようにグレー表示されます。
を使用してビューのウィンドウのフォーカスを取得しようとしましたviewDidMoveToWindow
が、どうやら NSMenuItem のウィンドウはキーをうまく処理できないカーボン ウィンドウです。
簡単に言えば、この作業を成功させるための良い方法は何ですか? Spotlight がボーダレス ウィンドウであることは知っていますが、それは私の目的には適していません。
すべての提案は非常に役立ちます。
cocoa - Cocoa-NSMenuItemのカスタムNSViewは描画しません
以前はNIBで作成され、NSMenuItemのビューとして割り当てられていたカスタムNSViewがあります。これはうまく機能しますが、今度は、ハードに見えないコードでビューを作成したいと思います(正当な理由で保証できます)。しかし、ビューは実際には描画されていません。
「setNeedsDisplay:」メッセージを送信しても、必要なときにビューを描画するために以前に呼び出されていた「drawRect:」メッセージが呼び出されなくなりました。
ビューを画像で初期化し、メニュー項目が適切なサイズであるために機能するように見えるサイズ(画像サイズに一致するようにビューの)を設定しますが、画像がありません。
ここで何が起こっているのでしょうか?
これは、ビューを初期化するためのコードです。
そして、これは呼び出されないビューを描画するためのコードです
そして、これはビューを追加するメニュー項目のコードです。
objective-c - NSMenuItem の右側にアイコンを追加する方法
メニュー項目の隣のメニューの右側にいくつかのアイコンを追加しようとしています。理想的にはすべて右揃えです。NSMenuItem でメニュー項目を追加できることは承知しています (たとえば、MenuMadnessの例を参照してください)。OS X Wifi メニューのセキュリティ/信号強度インジケーターのようなものを本当に探しています。
私が見た 1 つのアプローチは、メニューに項目を追加し、setView を使用して各項目に NSView を提供することです。ただし、それは本来よりも複雑なようです。アイコン/複数のアイコンをメニューに追加する方法はありますか?
cocoa - CocoaでNSMenuItemのターゲット/アクションを設定する正しい方法は?
私が実行している最初のCocoaプログラミングで実際に問題が発生しています。
基本的に、メニューに添付されたNSStatusBar
アイテムがあります。NSMenu
メニューには単一のがありますNMMenuItem
。IBでは、NSMenuItemを、NSObject
それ自体がApplicationDelegateのクラスに設定されているに接続しました。次に、ReceivedActionsをIBAction
ApplicationDelegateのメソッドに設定しました。プログラムを実行してメニュー項目をクリックした場合を除いて、すべてが正しく接続されていると思いますIBAction
。メソッドは呼び出されません。私は本当にそれを解決することができないようです。関連するコードは次のとおりです。
アプリケーションデリゲートhファイル:
アプリケーションデリゲートmファイル:
私が言ったように、IBではApplication Delegateでに接続しNSMenu
(statusMenu
したがって、メニューはすべての下に表示されますNSStatusBar
)、NSMenuItem
内NSMenu
をNSObject
Application Delegateクラスに接続し、showPreferencePanelを呼び出すように接続しましたが、実行しても何も起こりません!!!
プログラムでも試しましたが、それでもIBActionメソッドを呼び出すことができません。
編集:IBでの設定を表示するためにいくつかの画面グラブを添付しますが、まだ許可されていません。
に追加されたメニューを含むメインのペン先はNSStatusBar
、次のようになります。
- FO
NSApplication
- FR
FirstResponder
- 応用
NSApplication
- フォントマネージャー
NSFontManager
- メインメニュー
NSMenu
- メニュー項目(設定)
NSMenuItem
- メニュー項目(設定)
- Sssアプリデリゲート
sssAppDelegate
NSMenuItem:
- 送信されたアクション
showPreferencePanel
---->Sss App Delegate
Sssアプリデリゲート:
- アウトレット
statusMenu
---->Main Menu
- 受け取ったアクション
showPreferencePanel:
---->Main Item (Preferences)