2010-11-30 3 views
1

У меня есть NSTableView, в котором мне нужно иметь возможность перехватывать события клавиатуры внутри редактируемой ячейки и заменять ячейку на строки. Например, нажмите «a» и перехватите «a», а значение «Alpha» присваивается при перезагрузке таблицы. Фактическая ситуация немного сложнее в том, что я также обрабатываю HID-устройства, но это совсем другая история. Достаточно сказать, я просто хочу иметь возможность перейти в режим редактирования и остановить отображаемые на клавиатуре значения.Фильтрация текста в NSTableView

Последняя часть этого (отображение «Альфа») проста, но я не могу понять первую часть проблемы. Если я подклассифицирую таблицу и сделаю ее первым ответчиком, я могу получить событие keyDown:, но как только пользователь дважды щелкнет по ячейке и начнет печатать, это затихнет.

Поскольку ни один из других NSTableView компонентов (NSCell, NSTextFieldCell и т.д.) происходят из NSResponder, я предполагаю, что есть NSTextField похоронен где-то там.

Итак, как лучше всего фильтровать текст, когда пользователь переходит в режим редактирования ячейки?

ответ

1

Как всегда бывает: после работы над этим в течение восьми часов, читая все документы, в пять раз, а затем прибегают к сети, я нашел ответ на пять минут позже:

- (BOOL)textShouldBeginEditing:(NSText *)textObject. 

К сожалению потреблять пропускную способность.

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