Я не могу заставить цвет фона работать на моем NSTextView. Я использую следующие атрибуты:
myTextView.typingAttributes = [
NSAttributedString.Key.font: NSFont(name: "Helvetica", size: 16.0)!,
NSAttributedString.Key.foregroundColor: NSColor.textColor,
NSAttributedString.Key.kern: 2,
] as [NSAttributedString.Key: Any]
myTextView.selectedTextAttributes = [NSAttributedString.Key.foregroundColor: NSColor.systemRed,
NSAttributedString.Key.backgroundColor: NSColor.systemYellow]
Текст отображается правильно, как указано выше, когда я выделяю текст, шрифт меняется на красный, как и ожидалось. Но цвет фона текста не меняется на желтый. Это происходит как в темном режиме, так и в светлом (Мохаве).
Что мне здесь не хватает?
РЕДАКТИРОВАТЬ
Я нашел причину этого. Я использую собственный NSLayoutManager, в котором я заменяю drawBackground(forGlyphRange glyphsToShow: NSRange, at _: NSPoint). Однако мне не удалось вызвать его super, поэтому я отключил атрибут backgroundColor.
В моем тестовом приложении фон желтый.
Интересно, возможно, у меня это не работает, потому что я использую собственный layoutManager. Я займусь этим.
Да, у меня тоже желтый фон!
На самом деле причиной этого был пользовательский LayoutManager. См. Дополнительную информацию в редактировании моего вопроса





Вы не устанавливаете цвет фона нигде выше, кроме выделения, почему вы ожидаете, что это сработает?