Отключите отсечение для NSTextView, чтобы оно смешивалось с визуальным эффектом.

Вот макет моего представления:

Изображение

Синий бит — это NSTextView, а серый бит — это NSVisualEffectView. Представление визуального эффекта настроено так, чтобы оно смешивалось с тем, что находится за этим представлением в окне. Я хочу, чтобы текстовое представление могло прокручиваться за представлением визуальных эффектов, чтобы оно сочеталось с меткой состояния и кнопкой. Я пробовал следующее:

  1. В раскадровке просто сделайте текстовое представление позади представления визуальных эффектов. Однако текст в самом низу будет просто закрыт, так как текстовое представление не будет знать, что представление визуальных эффектов существует, и просто перестанет прокручиваться под ним.
  2. Из этого вопроса я попытался переопределить wantsDefaultClipping, alignmentRectInsets а также использование свойства CALayer maskToBounds в текстовом представлении, охватывающем прокрутку. Но все это тоже не работает.

Я сделал что-то не так здесь? Что еще я должен сделать, чтобы любой из двух вариантов работал?

Спасибо


person Tom Shen    schedule 21.07.2018    source источник
comment
Текстовое представление не рисует свой текст или представление визуальных эффектов слишком непрозрачно?   -  person Willeke    schedule 21.07.2018
comment
@Willeke Это был не рисунок. Я проверил это, немного уменьшив размер текстового представления, и оно обрезается.   -  person Tom Shen    schedule 21.07.2018
comment
Как я могу воспроизвести проблему? Я поставил NSTextView и NSButton в окне и NSVisualEffectView поверх обоих. Текст и кнопка почти невидимы. Мне нужно выделить текст или нажать кнопку, чтобы увидеть, где они находятся, но текст не обрезается.   -  person Willeke    schedule 22.07.2018
comment
@Willeke Итак, текстовое представление в настоящее время не перекрывается представлением визуальных эффектов. Текстовое представление — это синее представление. Кнопка и метка — это подвид визуального эффекта. Также убедитесь, что вид визуального эффекта настроен так, чтобы он смешивался с окном.   -  person Tom Shen    schedule 22.07.2018
comment
Обычно представление не выводится за пределы своего фрейма и обрезается своими суперпредставлениями.   -  person Willeke    schedule 22.07.2018
comment
@Willeke Хорошо тогда. Можно ли продолжить первый метод и просто сделать так, чтобы текстовое представление прокручивалось над представлением визуальных эффектов?   -  person Tom Shen    schedule 22.07.2018
comment
То, что вы сказали, правильно: просто сделайте текстовое представление позади представления визуального эффекта. Однако текст в самом низу просто закроется.   -  person Willeke    schedule 22.07.2018
comment
Давайте продолжим обсуждение в чате.   -  person Tom Shen    schedule 22.07.2018