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

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

objective-c - ドキュメント ベースのアプリケーションでメニュー項目を接続する

私はすでにこのトピックについていくつか質問しましたが、その方法について実際の回答は得られていません (実際に「Tumbleweed バッジ」を受け取りました 笑)。

ドキュメント ベースのアプリケーションを使用しています (つまり、Menu.Xib は MyDocument.Xib とは別のものです)。

「太字」ボタンまたはスペル チェック ボタン (Menu.xib ([書式] > [フォント] などの下) にリストされている項目) を MyDocument (主要なインターフェイス) に追加したいとします。これを行う方法がわかりません。

どんな助けでも大歓迎です(うまくいけばすぐに答えに報います。これは数週間私を困惑させました)。

MyDocument.Xib に Font Manager を追加してその方法で接続しようとしましたが、Bold ボタンは有効になるだけで、無効にはなりません。さらに、スペル チェックなどは、フォント マネージャーを介して有効にすることはできません。

これを行うためのより良い方法が必要です。

Apple のドキュメントは信じられないほどあいまいです。

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

cocoa - Cocoaバインディング-NSMenuItemの状態をカスタムBOOLにバインドしようとしています

私のMacアプリでは、[モデルm]は合成されたBOOLプロパティとivarrollAnimationsを持つカスタムオブジェクトです。また、animationsItemはNSMenuItemオブジェクトです。私のanimationsItemの状態を[Modelm]のrollAnimationsプロパティとivarにバインドしたいと思います。双方向バインディングが理想的です(どちらかのプロパティを変更するともう一方も変更されます)が、それが面倒な場合(サイクルを保持するなど)、メニュー項目を変更するとrollAnimationsが変更されるように一方向バインディングに落ち着きます財産。

これがコードスニペットです。動いていない。私は何が欠けていますか?

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

cocoa - NSMenuItem カスタム ビューが keyEquivalent に応答しない

カスタムNSViewを に設定NSMenuItemして、独自の描画とレンダリングを行いました。ただし、に割り当てられた「keyEquivalent」NSMenuItemは応答していないようです。描画とアクションの処理は自己処理する必要があることは理解していますが、何をしても keyEquivalent リクエストをキャプチャできないようです。NSApplication の sendEvent をサブクラス化しようとしましたが、アプリがNSStatusBarItem(LSUIElement) であり、NSEventTrackingRunLoopMode(メニューがダウンしている場合) からのイベントが NSApplication の sendEvent に到達しないため、機能しません。

それから私は使用してみました:

メインメニューのデリゲートをコントローラーに設定しても、これは呼び出されないため、これも機能しません。

カスタム ビューを使用しているときに NSMenuItems で「keyEquivalent」イベントをキャプチャする方法について誰か考えがありますか?

ありがとう!

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

cocoa - アプリのメイン メニューの項目のタイトルを設定しますか?

Cocoa アプリのメイン メニューのいくつかの項目のタイトルを変更しようとしています。IB内と、アプリのapplicationDidFinishLaunchingWithOptions:メソッドからプログラムで設定しようとしました。いずれにせよ、私の NSMenuItem オブジェクトの title プロパティは変わります。しかし、アプリの実行中に画面上部のアイテムの実際のタイトルに変更が反映されません。

誰が何が起こっているのか説明できますか? どうすればこれを変更できますか?

編集: データ構造は、IB がセットアップするデフォルトのものです。

firstItem と subMenu の両方のタイトル プロパティを目的のタイトルに変更しました。それでも、デフォルトのものはまだ表示されます。

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

nsuserdefaults - NSUserDefaultsのブール値にバインドされたNSMenuItemの状態が同期を維持していません

メインメニュー(MainMenu.xib)に「ワードラップ」というタイトルのNSMenuItemがあります。その値は、XIBでもインスタンス化されている、共有ユーザーのデフォルトコントローラーにバインドされています。また、選択すると次のアクションが送信されます。

アプリデリゲートの+initializeメソッドでは、標準ユーザーのデフォルトにデフォルト値を入力します。

私の問題は、NSMenuItemの状態がユーザーのデフォルトと同期していないことです。何が起こるかのタイムラインは次のとおりです。

アプリの起動:

  • ワードラップメニュー項目がチェックされていません
  • wordWrapIsEnabledいいえです
  • ワードラップはオフです

ワードラップが初めて選択されたとき:

  • チェックされたワードラップメニュー項目
  • wordWrapIsEnabledNO (BZZZT WRONG)
  • ワードラップがオフです(BZZZT WRONG)

2回目のワードラップが選択された場合:

  • ワードラップメニュー項目がチェックされていません
  • wordWrapIsEnabledはいです(BZZZTが間違っています)
  • ワードラップがオンになっています(BZZZTが間違っています)

フリップフロップ広告を無限に繰り返します。

プロジェクトににアクセスするものが他にないことを確認しましたwordWrapIsEnabled。セレクターの呼び出しとwordWrapIsEnabledバインディングを介したの設定の間に競合状態が発生する可能性はありますか?バインドされた値が最初に設定されると想定してきました。

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

objective-c - NSMenuItem が有効になっていませんか?

menu と呼ばれる NSMenu に存在する history と呼ばれる NSMenuItem があります。プログラムの起動時に履歴にサブメニューがないため、無効になっています。それからある時点で、履歴のサブメニューが必要になるので、それを作成して履歴のサブメニューにします。サブメニューがあることを示す矢印が履歴の横に表示されます。しかし、履歴はまだ無効になっています。setEnabled を試しましたが、うまくいきません。助けてください。ここに私のコード:

これは、メニューに NSMenuItem が表示されるように、メニューと履歴を作成するときです。

この時点で、履歴は無効 (グレー表示) になっています。次に、プログラムのどこかに、履歴のサブメニューが必要です。

履歴の横に矢印が表示されるようになりましたが、まだグレー表示されています。

助けてください、私は過去2時間これを理解しようとしてきました。ありがとう。

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

objective-c - NSMenuItem のカスタム ビューで編集可能な NSTextField

Spotlight と同様に、編集可能な NSTextField を含めたいサブクラス化された NSView があります。

テキストフィールドを選択して強調表示するのが非常に困難です。テキストフィールドの編集領域をすばやくすばやくクリックすると、実際にテキストを入力できますが、最重要ではないアプリのフィールドにテキストを追加しているかのようにグレー表示されます。

を使用してビューのウィンドウのフォーカスを取得しようとしましたviewDidMoveToWindowが、どうやら NSMenuItem のウィンドウはキーをうまく処理できないカーボン ウィンドウです。

簡単に言えば、この作業を成功させるための良い方法は何ですか? Spotlight がボーダレス ウィンドウであることは知っていますが、それは私の目的には適していません。

すべての提案は非常に役立ちます。

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

cocoa - Cocoa-NSMenuItemのカスタムNSViewは描画しません

以前はNIBで作成され、NSMenuItemのビューとして割り当てられていたカスタムNSViewがあります。これはうまく機能しますが、今度は、ハードに見えないコードでビューを作成したいと思います(正当な理由で保証できます)。しかし、ビューは実際には描画されていません。

「setNeedsDisplay:」メッセージを送信しても、必要なときにビューを描画するために以前に呼び出されていた「drawRect:」メッセージが呼び出されなくなりました。

ビューを画像で初期化し、メニュー項目が適切なサイズであるために機能するように見えるサイズ(画像サイズに一致するようにビューの)を設定しますが、画像がありません。

ここで何が起こっているのでしょうか?

これは、ビューを初期化するためのコードです。

そして、これは呼び出されないビューを描画するためのコードです

そして、これはビューを追加するメニュー項目のコードです。

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

objective-c - NSMenuItem の右側にアイコンを追加する方法

メニュー項目の隣のメニューの右側にいくつかのアイコンを追加しようとしています。理想的にはすべて右揃えです。NSMenuItem でメニュー項目を追加できることは承知しています (たとえば、MenuMadnessの例を参照してください)。OS X Wifi メニューのセキュリティ/信号強度インジケーターのようなものを本当に探しています。

私が見た 1 つのアプローチは、メニューに項目を追加し、setView を使用して各項目に NSView を提供することです。ただし、それは本来よりも複雑なようです。アイコン/複数のアイコンをメニューに追加する方法はありますか?

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

cocoa - CocoaでNSMenuItemのターゲット/アクションを設定する正しい方法は?

私が実行している最初のCocoaプログラミングで実際に問題が発生しています。

基本的に、メニューに添付されたNSStatusBarアイテムがあります。NSMenuメニューには単一のがありますNMMenuItem。IBでは、NSMenuItemを、NSObjectそれ自体がApplicationDelegateのクラスに設定されているに接続しました。次に、ReceivedActionsをIBActionApplicationDelegateのメソッドに設定しました。プログラムを実行してメニュー項目をクリックした場合を除いて、すべてが正しく接続されていると思いますIBAction。メソッドは呼び出されません。私は本当にそれを解決することができないようです。関連するコードは次のとおりです。

アプリケーションデリゲートhファイル:

アプリケーションデリゲートmファイル:

私が言ったように、IBではApplication Delegateでに接続しNSMenustatusMenuしたがって、メニューはすべての下に表示されますNSStatusBar)、NSMenuItemNSMenuNSObjectApplication Delegateクラスに接続し、showPreferencePanelを呼び出すように接続しましたが、実行しても何も起こりません!!!

プログラムでも試しましたが、それでもIBActionメソッドを呼び出すことができません。

編集:IBでの設定を表示するためにいくつかの画面グラブを添付しますが、まだ許可されていません。

に追加されたメニューを含むメインのペン先はNSStatusBar、次のようになります。

  • FONSApplication
  • FRFirstResponder
  • 応用NSApplication
  • フォントマネージャーNSFontManager
  • メインメニューNSMenu
    • メニュー項目(設定) NSMenuItem
  • SssアプリデリゲートsssAppDelegate

NSMenuItem:

  • 送信されたアクションshowPreferencePanel---->Sss App Delegate

Sssアプリデリゲート:

  • アウトレットstatusMenu---->Main Menu
  • 受け取ったアクションshowPreferencePanel:---->Main Item (Preferences)