2

私は使用しています

- (id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)anObject 

カスタムコンテキストメニューを表示できるように、独自のフィールドエディタを提供します。これは機能しますが、フィールドエディタの「menuForEvent:」メソッド内で、どのNSTextFieldにアタッチされているかをどのように見つけることができますか?

編集:さて、私はそれをTextViewの内部から取得していることがわかりました

[[[[self window] firstResponder] nextResponder] nextResponder]

問題は、これが良い解決策なのか、それともハックなのかということです。クラス_NSKeyboardFocusClipViewの内部レスポンダーをスキップする必要があるため、これが将来のCocoaバージョンで機能しない可能性があることを恐れました。

4

1 に答える 1

1

そのためにレスポンダーチェーンに依存したくはありませんが、かなり壊れやすいようです。

フィールドエディタクラスにプロパティを追加し、それをデリゲートメソッドのanObjectに設定しようと思いますwindowWillReturnFieldEditor:toObject:

于 2010-08-26T07:27:20.550 に答える