Я пишу приложение для OS X, и у меня проблема со сглаживанием шрифтов в отдельном окне.
У меня есть текстовое поле, куда вы помещаете текст и окно предложений, которое появляется со списком предложений в соответствии с тем, что вы написали. Я использую View-cell NSTableView
для отображения этих предложений и SFBPopoverWindowController
для отображения его как «всплывающего» окна (пробовал другие классы с таким же эффектом). Когда строки рисуются впервые, они выглядят нормально, но после того, как я их выбираю (клавиатура или мышь), шрифт меняет свой вес. Это только визуально - как если бы вы изменили метод сглаживания шрифта, а не его жирный шрифт.
Здесь выделена ячейка "Музыкальная нота"
Что еще более странно, так это то, что после того, как я скрываю и показываю окно 3 раза, с этого момента все работает нормально.
Опять же - выделенная ячейка - «Музыкальная нота».
Выбор осуществляется путем перезаписи класса NSTableRowView
и его drawSelectionInRect:
метода, но я попытался отрисовать все внутри пользовательского класса NSTableCellView
, и это не помогло. Текст стандартный NSTextField
- там ничего не изменилось.
Окно SFBPopoverWindow (и его контроллер) создается один раз и повторно используется с styleMask NSBorderlessWindowMask
, backing NSBackingStoreBuffered
, defer установлен на YES
. Единственное изменение в SFBPopoverWindowController
, которое я сделал, - это отключить окно, которое становится ключевым окном, но это ничего не меняет.