NSTextView не будет отвечать на setString - PullRequest
2 голосов
/ 10 августа 2009

Я новичок в Какао, и у меня была проблема, которая абсолютно сводит с ума. Я пытаюсь записать простой NSString в NSTextView, и по какой-то причине он просто не отвечает. Нет предупреждений компилятора, нет ошибок времени выполнения, просто пустое textview.

Я могу использовать другие методы NSTextView, такие как selectAll, delete, setSelectedRanges и т. Д. Они работают нормально, и из всего, что я читал в Документах Apple и в сети, должны работать методы, подобные setString. Я также попробовал:

[[textView textStorage] setAttributedString:aString]

с использованием версии текста NSAttributedString, опять же без результата. Даже строковый метод работает отлично и возвращает содержимое textView, но по какой-то причине setString и тому подобное не будут. TextView доступно для редактирования. В отладчике значение строки, которую я пытаюсь написать, отображается без проблем.

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

Спасибо, Джо

Ответы [ 3 ]

1 голос
/ 17 августа 2009

Я понял это - я не уверен, что имелось в виду retainCount, но, похоже, я отправлял сообщение в textView до его инициализации. Я переместил свой оператор -setString в метод awakeFromNib, и он сработал. У меня это было в методе -init в моем windowController. OOps!

1 голос
/ 11 августа 2009

Вы пытаетесь установить строковое значение, когда поле активно редактируется? Пока текстовое поле сфокусировано, элемент управления, с которым вы на самом деле взаимодействуете, - это его редактор (NSTextView), поэтому изменения в хранилище текстового поля не будут иметь никакого эффекта.

0 голосов
/ 11 августа 2009

Убедитесь, что вы вызываете -setString: в главном потоке. AppKit не является потокобезопасным.

...