Мне нужно знать, когда изменяется TextKit
NSTextContainer
, поэтому я могу обновлять некоторые кеши в своем NSLayoutManager
. Как я могу получать уведомления при изменении size
? Действительно ли TextKit
(и NSTextContainer
- size
), в частности, поддержка KVO? Я просмотрел заголовок NSTextContainer.h
и NSTextContainer
documetation, и я ничего не могу найти об этом в любом случае.Как получать уведомления при изменении размера NSTextContainer в TextKit?
ответ
NSTextContainer
предполагается назвать -[NSLayoutManager textContainerChangedGeometry:]
на его NSLayoutManager
, когда его размер или форма изменения:
Этот метод вызывается автоматически другими компонентами текста системы; вам редко приходится ссылаться на него напрямую. Однако подклассы NSTextContainer должны вызывать этот метод в любое время, когда их размер изменяется (текстовый контейнер, который динамически настраивает свою форму , чтобы обернуть текст вокруг размещенной графики, например, должен сделать это, когда графику добавлено, перемещено , или удалены).
Я не проверял это, чтобы определить, если она требует, чтобы heightTracksTextView
или widthTracksTextView
быть установлен на NSTextContainer
; что verticallyResizable
или horizontallyResizable
установить на NSLayoutManager
; или что программный вызов -[NSTextContainer setSize:]
или -[NSTextContainer setSimpleRectangularTextContainer:]
будет автоматически вызывать -[NSLayoutManager textContainerChangedGeometry:]
, как указано.
Точно. Это должен быть принятый ответ. –