2014-10-31 2 views
4

У меня есть NSPopover, содержащий (список источника) в NSOutlineView, который отображается в течение обычно темном фоне (но это не всегда темный). NSOutlineView имеет прозрачный фон, чтобы хорошо сочетаться с видом NSPopover. Это выглядело отлично в OS X 10.9, но в 10.10 система меняет цвет текста в NSOutlineView на основе фона. Результатом является то, что текст становится полностью серым и нечитаемым в некоторых случаях:NSOutlineView в NSPopover не читается в OSX 10.10 Йосемити

enter image description here

Если изменить поповер быть HUD стиль является более удобным для чтения:

enter image description here

Однако в этот случай становится проблематичным с более легкими фонами (сверху).

Есть ли способ контролировать цвет текста в NSOutlineView, чтобы цвет оставался неизменным независимо от фона? Я попытался установить цвет текстовой ячейки на черный вместо системных цветов, но это не помогает.

Кроме того, могу ли я контролировать/снимать прозрачность NSPopover? Я прочитал, что NSPopover использует NSVisualEffectView, у которого есть элементы управления внешним видом, но я не знаю, как получить к нему доступ из NSPopover.

По эстетическим соображениям я не хочу ставить NSOutlineView под сплошным фоном. В этом случае будет нечеткое несоответствие цвета между фоном popover и его стрелкой.

EDIT:

Я был в состоянии удалить прозрачность, используя следующий код:

NSView *popoverView = popover.contentViewController.view.superview; 
popoverView.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua]; 

Это работает, но чувствует, как уродливые взломать. Я приветствую лучшие предложения.

EDIT2:

Это то, что он выглядит со стилем аква. Нет прозрачности и черного текста.

enter image description here

+0

Как выглядит внешний вид Aqua? –

+0

@boyfarrell Посмотреть мое редактирование. – rasmus

ответ

1

Установите режим на что-то другое, кроме списка источника и вы должны получить предварительное 10.10 стиль, то есть без полупрозрачности.

+0

Я использовал 'None'. «Исходный список» был бы в порядке, но текст группы прыгает вверх/вниз по мыши, если в базовой строке нет символов (например, «g»). 'Регулярный' просто безумный :-( –