問題タブ [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.
ios - Swift のレスポンダー チェーン (UIButton ターゲットの nil ターゲット)
レスポンダー チェーンを迅速に使用する際に問題が発生しました。
次のようなnilターゲットを使用してボタンターゲットをセットアップすると:
アクションがコントローラーで処理されるまで、アクションはレスポンダー チェーンに送信されます。ここまでは順調ですね :-)
しかし、私はアクションをインターセプトし、いくつかのコードを実行して、コントローラーに中継したいと考えています。しかし、これを迅速に行う方法が見つかりません。ObjC ではこのタスクは簡単に実行できるので、Swift にも方法があるはずです。
助けてくれてありがとう:-)
swift - UnsafeMutablePointer[NSObject : AnyObject] に
NSResponder のmouseEntered(theEvent: NSEvent)
メソッドをオーバーライドしており、Swift で NSTrackingArea を作成するときに設定した値を取得したいと考えています。このコンストラクターを使用して NSTrackingArea を作成し、次のオブジェクトを として渡しますuserInfo
。
(存在するview : NSView
だけでなくtrackingRect : NSRect
)
後で読めるように設定trackerData
しています。userInfo
mouseEntered(theEvent: NSEvent)
私のコードは、Apple が提供するこのObjective-C サンプル コードに基づいています。の 372 行目を引用するにはSuggestionsWindowController.m
:
では、どうすればイベントを読むことができuserData
ますか?
この StackOverflow Q&Aを見ましたが、うまくいきません。
cocoa - 私の NSWindow のネクスト レスポンダは何が変わったのですか?
main の次のレスポンダーの変更によって発生した問題をデバッグしようとしていNSWindow
ます。internalNSView
と custom のチェーンがありますがNSResponder
、デバッグしてブレークポイントをすべてに貼り付けた後でもsetNextResponder
、それらのいずれかで停止することはなく、ウィンドウのスタイルを変更するだけです。
次のレスポンダーが変更したものを取得するにはどうすればよいですか? スタイルチェンジのせいでしょうか?私はドキュメントでそれを見つけることができません。足りないものはありますか?レスポンダーチェーンを台無しにする可能性のある操作は何ですか?
macos - NSView でスムーズ スクロールを無効にする
三角形をレンダリングしているMTKViewがあり、 scrollWheel:メソッドを呼び出す 2 本指のドラッグ ジェスチャを使用して変換できるようにしたいと考えています。scrollWheel:メソッドのデフォルトの動作は、追加のスクロール イベントを生成して、時間の経過とともに減衰するスムーズなスクロールを実装することです。この動作を無効にして、トラックパッドから指を離すとすぐにスクロールが終了するようにしたいと思います。NSViewのスムーズスクロールを無効にする方法を知っている人はいますか?
macos - nextKeyView の NSBrowser へのタブ移動とツールバーの検索ビュー
Mac OS X アプリで、ユーザーが 1 つのウィンドウで次の項目間をタブ移動できるようにする必要があります。
- ツールバー内の NSSearchField
- NSブラウザ
- NSCollectionView
- NSCollectionView (2 つ目)
- NSCボボックス
ユーザーがテキスト ボックスとリストの間でのみタブを使用している場合。何らかの理由で、NSBrowser はリストとしてカウントされないようであり、ツールバー内の NSSerachField はテキスト ボックスとしてカウントされないようです。しかし、タブをシフトすると、NSSerachField で後方にタブ移動できます
コントロール間のタブ設定を、NSBrowser がタブ化されているすべてのコントロール間のタブに変更すると、NSSearchField も変更されますが、NSSearchField からタブアウトできないという別の問題があります。これは、nextKeyView チェーンが正常であるか、すべてのコントロール間のタブが有効になっているときに nextKeyView の値が完全に無視されることを意味すると想定しています。
インターフェイスビルダーで nextKeyViews を設定しています。
Mac OS で NSBrowser をリストとして扱う方法はありますか?既に NSBrowser をサブクラス化しています。また、テキスト ボックスがツールバーにある場合にタブで移動できない理由はありますか。
これに対する追加のしわは、NSBrowser と最初の NSCollectionView が NSTabView 内にあり、2 番目の NSCollectionView も NSTabView 内にあることです。NSTabView には NSTabViewItems が動的に追加および削除されるため、コンテンツはドキュメントのように機能します。NSTabViews を nextKeyView として設定し、NSTabViewItems を NSTabView に追加するとすぐに、NSTabViewItems の initialFirstResponder を設定します。また、NSBrowser が NSCollectionView にタブで移動するように nextKeyView を設定しています。そして、windows initialFirstResponder は最初の NSTabView に設定されます。
追加情報 autorecalculatesKeyViewLoop を NO にしました。コードで次のレスポンダーを設定することで、一時的に機能させることができましたが、何かが起こったようで、Cocoa がすべてを変更します。
cocoa - カスタム NSViewController に登録するマウス イベントを取得できません
簡潔にするために簡略化した私のコードは次のとおりです。
MyMainMenu.xib
には、上記の AppDelegate で参照できる単一のウィンドウがあります。
キーボードのボタンを押すと、コンソールに「バー」が表示されます。マウスをクリックしても何も表示されません。マウスをクリックすると、それ以上のキー イベントは登録されません。
私は何が欠けていますか?マウス イベントがレスポンダー チェーンを奪うのはなぜですか? また、どこに行くのでしょうか?