Стиль абзаца не обновляется в NSTextView с привязкой значения - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть NSTextView, который я связываю со строкой. Для NSTextView isRichText имеет значение false. Текст редактируется пользователем.

Я хочу динамически обновлять шрифт и высоту строки. Настройка шрифта с помощью textView.font работает в любое время.

Мне кажется, что я могу установить стиль абзаца только для высоты строки до того, как будет установлена ​​привязка. После этого тот же код не влияет на разметку текста.

Я использую следующий код:

let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineHeightMultiple = style.lineHeightMultiple
editableText.defaultParagraphStyle = paragraphStyle

Кто-нибудь может мне помочь с тем, что я делаю неправильно? Спасибо.

1 Ответ

0 голосов
/ 06 ноября 2018

Благодаря @Willeke и этот вопрос , у меня есть решение для этого. Как и предполагалось, для этого мне пришлось пойти в хранилище текста и установить атрибуты по всему текстовому диапазону. Это действительно кажется неправильным, потому что я устанавливаю NSTextView как обычный текст и поэтому считаю, что стиль должен применяться оптом.

Если установить атрибуты, как указано ниже, настройка textView.font будет удалена, поэтому все атрибуты должны применяться одинаково.

let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineHeightMultiple = style.lineHeightMultiple

let storageRange = NSMakeRange(0, editableText.textStorage!.string.count)
editableText.textStorage!.setAttributes(
            [NSAttributedStringKey.paragraphStyle : paragraphStyle,
             NSAttributedStringKey.font : style.noteFont],
            range: storageRange)
...