Изменение свойства межстрочного интервала в NSParagraphStyle вызывает удлинение курсора

У меня есть подкласс UITableViewCell, который содержит UITextView. Я добавил NSParagraphStyle в качестве атрибута строки в подклассе NSTextStorage. В следующем коде я увеличил пространство между каждой строкой в ​​UITextView.

быстрый

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 11
myCustomTextStorage.appendAttributedString(NSAttributedString(string: someText, attributes: [NSParagraphStyleAttributeName: paragraphStyle]))

Высота курсора увеличивается до высоты следующей строки, как показано ниже. Это происходит только в строках перед последним рядом.

Я посмотрел несколько постов на SO по этой проблеме, включая этот пост; однако ни одно из предложенных решений, кажется, не работает для меня.

Я прочитал документацию по TextKit, но не нашел решения этой проблемы.

Есть ли способ уменьшить высоту курсора?

2 ответа

Это работает, как задумано, и то же самое на Mac. Он предназначен для предоставления пользователю визуальной обратной связи о том, на какой линии он находится, и о высоте этой линии. Вы должны подумать, прежде чем изменить это только потому, что вам не нравится, как это выглядит.

Тем не менее, метод в SO сообщении, которое вы связали выше, является общим подходом для настройки курсора (хотя, возможно, также потребуется скорректировать происхождение скорректированного прямоугольника). Что насчет этого не работает для вас? Было бы лучше начать оттуда.

Ответ, связанный с этой проблемой, дан в этой теме. просто вставить сюда для дальнейшего использования. iOS - UITextView lineSpacing делает высоту курсора не одинаковой

"Вы можете изменить высоту курсора, создав подкласс UITextView, а затем переопределить функцию caretRectForPosition:position. Например:

  • (CGRect) caretRectForPosition: (UITextPosition *) position {CGRect originalRect = [super caretRectForPosition:position]; originalRect.size.height = 18,0; вернуть originalRect; } "
Другие вопросы по тегам