2010-08-25 2 views
1

Я с помощьюВыяснение NSTextField для редактора поля

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

предоставить свой собственный редактор поля, так что я могу отобразить пользовательский контекстное меню. Это работает, но когда внутри метода «menuForEvent:» моего редактора полей, как я могу найти, к которому прикреплен NSTextField?

EDIT: хорошо, я обнаружил, что я получить его через внутри TextView через

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

Вопрос - это хорошее решение или хак. Мне нужно пропустить внутренний ответчик класса _NSKeyboardFocusClipView, поэтому я испугался, что это может не сработать в будущих версиях какао.

ответ

0

Я бы не хотел полагаться на цепочку ответчиков для этого, кажется довольно хрупким.

Я бы попытался добавить свойство в свой класс редактора полей и установить его в объект-объект в методе делегата windowWillReturnFieldEditor:toObject:.

+0

Я пробовал это раньше, но это не работает по некоторым неизвестным причинам. BTW, поместивший printf в этот метод, заставил меня болеть, чтобы узнать, сколько раз он называется. – Lothar

Смежные вопросы