Графическая ошибка NSVisualEffectView, когда приложение находится в фоновом режиме.

В моем приложении NSTableView настроен как SourceList. Под NSTableView находятся два NSButton два добавления/удаления элементов в таблице. Таблица и кнопки встроены в NSVisualEffectView (режим .behindWindow).

Результат отличный, и я могу видеть фон через таблицу и кнопки, НО, когда приложение находится в фоновом режиме (я передаю фокус другому приложению), таблица и кнопки становятся черными, и вид не перерисовывается, как показано на картинке ниже (снято на iPhone, потому что скриншот не показывает ошибку!):

Графическая ошибка, когда приложение работает в фоновом режиме

А вот структура просмотров IB: Структура ИБ

Представление контейнера (CustomView) имеет многоуровневую поддержку.

Любое руководство для решения этой проблемы? Заранее спасибо !


person vomi    schedule 22.01.2017    source источник


Ответы (2)


Проблема заключалась в том, что я пытался сделать NSOutlineView полупрозрачным (смешивание за окном), но под TabView.

Руководство Apple по пользовательскому интерфейсу (здесь) указано следующее:

Используйте непрозрачный фон, когда окно содержит более одной боковой панели, а также при использовании боковой панели на панели или в окне настроек. В остальных случаях используйте полупрозрачный фон.

Из-за TabView я явно был против этого правила, которое имело технические побочные эффекты (что и привело к этому посту :-)).

--> создание непрозрачного NSOutlineView (не как SourceList) решило проблему.

person vomi    schedule 05.07.2017

Какие-либо из ваших представлений непрозрачны и реализуют drawRect:?

Я видел подобные проблемы, когда представление реализует drawRect:, но не полностью заполняет переданный прямоугольник (или все прямоугольники, возвращенные из getRectsBeingDrawn:count:).

person s4y    schedule 05.07.2017
comment
Нет, без изменения drawRect - person vomi; 05.07.2017