У меня есть NSPopover
, содержащий (список источника) в NSOutlineView
, который отображается в течение обычно темном фоне (но это не всегда темный). NSOutlineView
имеет прозрачный фон, чтобы хорошо сочетаться с видом NSPopover
. Это выглядело отлично в OS X 10.9, но в 10.10 система меняет цвет текста в NSOutlineView
на основе фона. Результатом является то, что текст становится полностью серым и нечитаемым в некоторых случаях:NSOutlineView в NSPopover не читается в OSX 10.10 Йосемити
Если изменить поповер быть HUD стиль является более удобным для чтения:
Однако в этот случай становится проблематичным с более легкими фонами (сверху).
Есть ли способ контролировать цвет текста в NSOutlineView
, чтобы цвет оставался неизменным независимо от фона? Я попытался установить цвет текстовой ячейки на черный вместо системных цветов, но это не помогает.
Кроме того, могу ли я контролировать/снимать прозрачность NSPopover
? Я прочитал, что NSPopover
использует NSVisualEffectView
, у которого есть элементы управления внешним видом, но я не знаю, как получить к нему доступ из NSPopover.
По эстетическим соображениям я не хочу ставить NSOutlineView
под сплошным фоном. В этом случае будет нечеткое несоответствие цвета между фоном popover и его стрелкой.
EDIT:
Я был в состоянии удалить прозрачность, используя следующий код:
NSView *popoverView = popover.contentViewController.view.superview;
popoverView.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
Это работает, но чувствует, как уродливые взломать. Я приветствую лучшие предложения.
EDIT2:
Это то, что он выглядит со стилем аква. Нет прозрачности и черного текста.
Как выглядит внешний вид Aqua? –
@boyfarrell Посмотреть мое редактирование. – rasmus