Я работаю с NSTextView, и для его свойства -textStorage
установлен делегат. При получении -textStorageDidProcessEditing:
мне нужно применить атрибуты к частям текста.
Мои атрибуты применяются, но они всегда применяются к тексту до внесения изменений, хотя я вызываю методы NSLayoutManager не из -will...
, а из did...
.
Это как если бы диспетчер компоновки не знал о недавней вставке/удалении глифа в этот момент выполнения, поэтому я предполагаю, что NSTextView/NSTextStorage вызывает метод делегата затем уведомляет диспетчер компоновки об обновлении.
Есть ли способ заставить диспетчер компоновки обновиться с немедленным вступлением в силу, чтобы я мог заставить это работать?
Я знаю о методах -addAttribute:value:range:
NSTextStorage
и успешно использовал их до этого момента, но я столкнулся с моментом, когда мне нужно теперь сделать это через менеджер компоновки, а не как часть упражнения по рефакторингу/оптимизации.