Почему использование contentFilters меняет внешний вид всего окна, и я могу остановить его?

У меня есть эта симпатичная маленькая программа (приложение Xcode Mac по умолчанию, с таким названием, как ViewController.swift):

import Cocoa

class ViewController: NSViewController {
    @IBOutlet var button: NSButton!

    @IBAction func clicked(_ sender: Any) {
        if button.contentFilters.isEmpty {
            button.contentFilters = [CIFilter(name: "CIGaussianBlur",
                                              parameters: ["inputRadius": 1])!]
        } else {
            button.contentFilters = []
        }
    }
}

Main.storyboard имеет только одну кнопку, и он подключен здесь к IBOutlet и IBAction. Когда вы нажимаете на нее, она становится размытой.

В темном режиме Мохаве, однако, переключение это также меняет весь стиль окна. Становится еще темнее и менее прозрачным.

Зачем? Есть ли способ остановить это? Я хочу продолжать использовать contentFilters, но я не хочу менять одно маленькое представление, чтобы изменить внешний вид всего окна.

Кажется, что установка какая-то непустая contentFiltersна любом NSView в любом месте окна, изменяет все окно. Я действительно понятия не имею, что попробовать или почему это может произойти. Я даже не уверен, какие слова использовать, чтобы описать, что происходит с окном!

  • Обычная кнопка в окне в темном режиме: https://imgur.com/HB5cMVw - обратите внимание, что она слегка желтая, так как находится на желтом фоне рабочего стола.

  • Размытая кнопка в окне в темном режиме: https://imgur.com/dXUbvBn - обратите внимание, что он темнее и другого цвета, потому что он не размыт с фоном.

Есть ли способ остановить это? Или, по крайней мере, включить его постоянно, чтобы изменение contentFilters не испортило все?

0 ответов

Другие вопросы по тегам