Я заметил, что у ошибочных текстовых представлений есть привязанная «строка приписывания» с привязками Какао к методам, которые возвращают простые, не приписанные объекты NSString.Я, вероятно, сделал это, потому что мне было лень, когда я писал это приложение много лет назад, и оно работало нормально.Это несоответствие оказалось проблемой.Исправление состоит в том, чтобы изменить эти методы, чтобы они возвращали NSAttributedString со словарем атрибутов, содержащим пару ключ / значение
NSForegroundColorAttributeName : NSColor.controlTextColor
Вероятно, произошло то, что Какао было разработано для делать то, что вы, вероятно, хотите когда связываемая строка получает атрибут без строки.Вместо исключения исключений, Какао применяет некоторые атрибуты «по умолчанию», которые включают черный цвет текста, который был по умолчанию в macOS с 1984 года - совершенно разумно, пока не появился Dark Mode!Что ж, было бы неплохо, чтобы Apple изменила это значение по умолчанию с черного на controlTextColor, но, видимо, они этого не сделали.
Заключение: Мы больше не можем избежать связывания атрибутивной строки текстового представления с простой неатрибутированной строкой.
Или вы можете использовать ответиз @Ely и привязка к value
.Но если вы попробуете это и не увидите привязку value
в Инспекторе привязок, но увидите привязку data
, это происходит из-за этих замечаний в документации NSTextField:
[value
] привязка доступна, только если NSTextView настроен для отображения с использованием одного шрифта.
и более поздних версий
[data
] доступна только для привязкикогда NSTextView настроен для разрешения нескольких шрифтов.
Получается, что они означают , настроенный для разрешения нескольких шрифтов , заключается в том, что в инспекторе атрибутов Разрешает расширенноеТекст флажок включен.И наоборот, , настроенный для отображения с использованием одного шрифта, означает, что флажок Разрешить расширенный текст выключен.