Проверьте, был ли отредактирован NSTextView

#cocoa #interface-builder

#cocoa #конструктор интерфейса

Вопрос:

Есть ли способ получать уведомления при изменении NSTextView?. В NSTextField я просто установил цель для отправляемого действия по умолчанию и работает отлично, но я не вижу никаких отправленных действий в NSTextView.

Комментарии:

1. Я не думаю, что для этого есть метод делегирования, не могли бы вы просто продолжить опрос и сравнить значения?

2. Я думаю, вы правы, позвольте m проверить

3. Я не смог найти какой-либо метод делегирования, который сообщит мне об изменении

4. Это то, о чем я говорил, чтобы вы могли опрашивать его с вашим собственным интервалом в цикле (в другом потоке!) и создать свою собственную систему псевдо-уведомлений.

Ответ №1:

NSTextView наследуется от NSText, который соответствует протоколу NSTextDelegate. Посмотрите это в документах. Метод, который вы ищете, это: - (void)textDidChange:(NSNotification *)aNotification который вы можете либо реализовать в делегате вашего TextView, либо получить, зарегистрировавшись для получения уведомления «NSTextDidChangeNotification».

Ответ №2:

Создайте подкласс NSTextField и переопределите имеющийся у него метод textDidChange.

Делегат сообщит вам, когда он начнет редактирование и когда завершит редактирование. Но сам элемент управления получает метод textDidChange, вызываемый для самого себя.

Создайте его подкласс и переопределите метод

 - (void)textDidChange:(NSNotification *)notification;
  

затем вы могли бы установить флаг, к которому вы можете получить доступ извне.