問題タブ [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.
cocoa - NSMenuItem で自分のキーに相当するものを描画する方法は?
この所有者が自分のコードでタブ補完キーに相当するものを描画する必要があります。この例で TextMate が行うように。
メニューの描画は Carbon ベースだと聞きましたが、それほど大きなハックではないと思います。
しかし、どこを探しても手がかりは見つかりませんでした。
編集:バージョン>= 10.4で実行されるものなら何でも、カーボンベースの回答でも喜んで受け入れます
cocoa - NSMenuItem のカスタム NSView がマウス イベントを受信しない
popUpStatusItemMenu を使用して NSStatusItem から NSMenu が飛び出しています。これらの NSMenuItem は一連の異なるリンクを示しており、それぞれが setAction: でターゲットの openLink: メソッドに接続されています。この配置は長い間うまく機能しています。ユーザーがメニューからリンクを選択すると、openLink: メソッドがそれを処理します。
残念ながら、私は最近、NSMenuItem の setView: メソッドを使用して、より洗練されたインターフェースを提供する実験を行うことにしました。基本的に、タイトルの設定をやめ、NSMenuItem を作成し、setView: を使用してカスタム ビューを表示しました。これは完全に機能し、メニュー項目は見栄えがよく、カスタム ビューが表示されます。
ただし、ユーザーがメニュー項目を選択してマウスを放すと、アクションは機能しなくなります (つまり、openLink: は呼び出されません)。setView: 呼び出しを単純にコメントアウトすると、アクションが再び機能します (もちろん、メニュー項目は空白ですが、アクションは適切に実行されます)。私の最初の質問は、ビューを設定すると NSMenuItem のアクションが中断される理由です。
問題ありません。カスタム ビューで mouseUp イベントを検出し、そこからアクション メソッドを呼び出すことで修正できると思いました。このメソッドをカスタム ビューに追加しました。
ダイスなし!このメソッドは呼び出されません。
ただし、トラッキング rect を設定して mouseEntered: イベントを受け取ることはできます。次のように、mouseEntered ルーチンにいくつかのテストを入れました。
そして、以下の回答を得ました。
これが問題ですか?「isKeyWindow ではない」? Apple のドキュメントには、「ユーザーがキー ウィンドウにないビューをクリックすると、デフォルトでウィンドウが前面に表示されてキーになりますが、マウス イベントはディスパッチされません」と記載されているため、おそらくこれは適切ではありません。しかし、これらのイベントを検出する方法が必要です。どうやって?
追加:
canBecomeKeyWindow が YES であるにもかかわらず、効果はありません。
cocoa - 列挙されたプロパティをバインドする最もクリーンな方法は何ですか?
列挙型の各値の項目を持つメニューがあります。
メニュー:
列挙型:
プロパティ:
これを配線する最もクリーンな方法は何ですか? 私には 2 つのアイデアがありますが、どちらも不十分だと思います。
1 番目のアイデア: 各値 ( など) のプロパティを作成しますsortMethodIsDueDate
。setSortMethodIsDueDate:
これらのプロパティは呼び出しsetTaskSortMethod:
て呼び出しますvalueDidChange:@"sortMethodIsDueDate"
。その後、メニュー項目はこれらのプロパティにバインドされます。これは大変な作業のようです。
2 番目のアイデア: 各メニュー項目を に接続してから、メニュー項目-(IBAction)updateSortMethod:(id)sender
を繰り返し、 に応じて値を設定しますsender
。このアプローチはtaskSortMethod
、コードの別のセクションによって が変更されるまでは問題ありません。変更された時点で、メニューを と同期させるためにコードを追加する必要がありますtaskSortMethod
。
VとCの分離が優れているため、最初のアプローチに傾いています。
より良いアイデアはありますか?
nsview - カスタム ビューを使用したカスタム NSStatusItem - NSWindow、NSView、カスタム NSMenuItem を使用しますか?
Spotlight、CoverSutra、およびそのタイプの他のアプリのように動作する LSUIElement アプリを作成しようとしています。NSWindow をポップアップするカスタム NSStatusItem を作成できましたが、問題は、現在フォーカスがあるアプリがカスタム NSWindow にフォーカスすることです。
私は Matt Gemmell の例 ( http://mattgemmell.com/2008/03/04/using-maattachedwindow-with-an-nsstatusitem )に基づいています。
たとえば、Safari で Spotlight アイコンをクリックすると、現在の Safari ウィンドウはグレー表示されず、フォーカスされたままになります。Spotlight で ESC を押すと、フォーカスが Safari ウィンドウに戻ります。
カスタム NSWindow でこれを行うことができませんでした。ウィンドウにフォーカスを戻すには、ウィンドウをクリックして戻す必要があります。
だから私はこれを達成するためにどのルートに行くべきか知りたいです。ソリューションは、カスタム NSMenuItem を持つ NSWindow、NSPanel、NSMenu ですか?
objective-c - NSMenuItem の NSTextField
こんにちは、twitter.com に twitts を投稿するための小さなアプリを書いています。時計とバッテリー モニターの横にステータスバー アイコンを作成することはできましたが、今はスタックしています...
メニュー項目のテキスト領域の最大長 140 文字 (4 ~ 5 行のテキスト入力フィールド) を追加したかったのですが、スポットライトのようなものですが、複数行です。
(ところで、私はワーキングクラスを持っており、ツイッターにつぶやきを入れて取得し、それをNSStringとして返します。動作します)
それは可能ですか、表示される独自の「何か」を実装する必要がありますか、またはメニュー項目を使用できます
次のようなメニュー項目を追加します。
次の問題は、つぶやきをフォローしてメニュー項目を自動生成することですが、問題にはならないと思います (リストを自動的に作成する wifi ステータスバー アイコンに似ています)。
cocoa - メニュー項目に入力?
メニューのメニュー項目として NSTextField (たとえば) を使用できるかどうかを知りたいです。あなたの助けは非常に高く評価されます!
甘い日、アルベ
objective-c - アクションセレクタープリセットを使用してNSMenuにアイテムを追加する
私はObj-C/Cocoaプログラミングに不慣れで、メニュー項目をNSMenuインスタンスに動的に追加しようとして問題が発生し、挿入時に項目アクションセレクターがすでに設定されています。
動的メニュー項目をうまく追加できますが、メニューから項目をクリックしてもアクションセレクターはトリガーされません。
以下の最初の行は、メニュー項目を追加するために使用しているコード行です。action:(SEL)aSelectorを「openEchowavesURL」関数に設定するように設定できます。
この関数は同じコントローラークラスファイルにあり、以下に関数定義を含めました。
間違ったセレクター構文または何かを呼び出しているだけですか?または、クリックしたときにメニュー項目がセレクターを呼び出すようにするための秘訣は何ですか?
cocoa - NSMenuItem テキスト フィールドのハイライトの問題
テキスト フィールドに URL を入力する必要があるステータス バー アプリケーションを作成しています。テキスト フィールドは NSMenuItem のサブビューです。私が直面している問題は、テキスト フィールドの値を変更できず、「間接的に強調表示」されることです (通常の青色の強調表示ではなく、テキスト フィールドの値をダブルクリックしたときにのみ発生する灰色の強調表示です)。
誰かがこれがなぜなのか知っていますか?私はテキストフィールドを無効にしていませんが、読み取り専用のプロパティか何かを適用しているようです...
objective-c - ドキュメントコントローラからNSMenuにデータを入力できません
MainMenu.xibとMyDocument.xibがあります。ドキュメントコントローラーからいくつかのNSMenuItemを動的に入力する必要がありますが、MainMenu.xibからNSMenuItemにアクセスする方法がわかりません。
NSObjectをMainMenu.xibに追加して、それをドキュメントコントローラーのインスタンスにしようとしましたが、コントローラーにあるNSArrayControllerからNSMenuItemを設定できません。
これをコードで行う必要がありますか、それともこれに取り組む別の方法がありますか?
objective-c - HUD NSPanel の表示/非表示に関する NSMenu の問題
この問題にはまだ大きな困難があります。助言がありますか?
NSWindow とは異なる NSPanel ウィンドウの基本を説明する簡単なチュートリアルをオンラインで見つけることができません。
通知と入力ボックスとして表示したい HUD ウィンドウがありますが、どうすればよいかわかりません。私の試みは以下のとおりです。
これは言い回しが悪く、広すぎる質問であることは承知しています。私は Objective C と Interface Builder を初めて使用するので、具体的に説明できるほどまだ足を踏み入れていません。
関連部分: AppController.h
関連部分: AppController.c
また、IB でのリンクが正しいことはかなり確信しています。チュートリアルに従って、このほとんどをセットアップしました。他のアクションに割り当てたメニュー項目は適切に実行されています。
私が見つけたチュートリアルはここにありました:
http://www.mataderu.com/xphere/info/cocoa_tut02/OpenGLrules.zip