問題タブ [nsresponder]

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 投票する
0 に答える
36 参照

cocoa - NSResponder print: 呼び出し先が間違っています

NSViewController に print(_:) メソッドを配置しましたが、印刷を押しても呼び出されません。代わりに、私がいる現在の NSTextField によって印刷がキャプチャされています。印刷呼び出しを強制的にビュー コントローラーに入れるにはどうすればよいですか? 私はそれを次のように定義しました:

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

cocoa - NSResponder と複数の NSTableView - 誰がメッセージを送信したか?

1 つの NSViewController に 2 つの NSTableView があり、それぞれに存在するものを処理するための独自の NSArrayController があります。私は今、編集 - >削除ボタンを接続しようとしています。delete メソッドが呼び出されたときに、「誰が」そのメッセージを送信したかを知るにはどうすればよいですか?

具体的には、[削除] メニュー項目を選択したときに、最初のテーブル ビューまたは 2 番目のテーブル ビューをクリックしたかどうかを知りたいです。削除メソッドの「送信者」は単なる NSMenuItem であるため、それをテーブルに戻すことはできません。

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

swift - Swift 2.2 で NSResponder セレクターを更新する方法

NSControlTextEditingDelegate プロトコルを実装していますが、commandSelector などと一致させる必要があるクラス/プロトコルがわかりません。#selector(WhichClass.moveUp(_:)) 等号が通るようにします。

現在、swift 2.1 ではすべて問題ありません。

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

swift - NSTextView のテキストに下線を引くことはできますが、太字にすることはできません

Xcode 8 のウィザードで作成された NSDocuments & ストーリーボード アプリがあります。ViewController シーンに NSTextView を追加しました。太字や斜体など、特定のメニュー項目が無効になっています。

First Responder を見ると、太字と斜体のアクションがありません。これらのメソッドを自分で作成する必要がありますか? これは、レスポンダー チェーンが正しく設定されていないためですか? 下線は表示されるのに太字が表示されないのはなぜですか?

編集: インスペクタ バーでテキストを編集する方法を示す画像を追加しましたが、[書式] メニューに期待するコマンドが表示されません。

下線を除いて、メニューではなくインスペクターバーでテキストを変更する方法を示す画像

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

objective-c - テキスト フィールドとスクロール ビューを含む Cocoa ビューでのタブの処理

私の Cocoa アプリには、NSTextField (そのまま) と NSScrollView (サブクラス) を含むウィンドウがあります。テキスト フィールドとスクロール ビューを含むウィンドウの NSView を管理する NSViewController があります。

アプリの起動時に NSTextField にフォーカスがあり、入力するとそのテキスト ボックスに文字が入力されます。TAB キーを押すと、フォーカスが失われます。しかし、NSScrollView のように、インターフェイスの他のものは何もフォーカスされません。キーダウン イベントがどこに行くのかわかりません。

キーダウンイベントがそれに影響を与えることができるように、NSScrollView にフォーカスを転送するにはどうすればよいですか (たとえば、矢印キー、暗黙の検索など)。

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

cocoa - 関連するコントローラーでの NSToolbarItem の検証

ビューとして NSButton を持つ NSToolbarItem と、メイン メニューに NSMenuItem があります。どちらも同じアクションを持ち、特定のターゲットではなく、ファーストレスポンダに送信されます。そのメソッドは、最終的に、ウィンドウのコンテンツ ビューのビュー階層のどこかにある NSSplitViewController のサブクラスに実装されます。両方の項目を検証したいのですが、特定の分割ビュー コントローラーに検証を任せます。これは、そのコントローラーに固有のいくつかの条件に依存しているためです。

私はオーバーライドvalidateToolbarItem(_:)validateMenuItem(_:)、その分割ビューコントローラーで。メニュー項目については、これは期待どおりに機能しています。メソッドが呼び出され、検証が行われます。validateToolbarItem(_:)ただし、呼び出されることはありません。

Apple のドキュメントによると、NSToolbar はvalidateToolbarItem(_:)ビューベースのツールバー項目に送信しません。これをテストするために、ツールバー項目を画像ツールバー項目に置き換えたところ、期待どおりに動作しました。

これに基づいて、いくつかの解決策に出くわしましたが、それらは私が望むものではありません。

  • NSToolbarItem をサブクラス化し、オーバーライドしますvalidate()。ただし、コントローラーvalidateToolbarItem(_:)を呼び出す方法についてのガイダンスはありません。

  • NSToolbar と overridevalidateVisibleToolbarItems()をサブクラス化し、最初の応答者にメッセージを送信します。ここで、ツールバーのレスポンダーチェーンの外側にあるため、スプリットビューコントローラーにメッセージを送信できないという問題に直面しています。

  • 上記のように NSToolbar をサブクラス化しますがvalidateToolbarItem(_:)、NSWindowController などのレスポンダー チェーン内にあるコントローラーに実装します。これは機能しますが、メニュー項目に不要なものを処理するために追加のコードを追加する必要があります。

画像ツールバー項目とメニュー項目の場合と同様に機能する、これに対するエレガントなソリューションはありますか?