Почему использование contentFilters меняет внешний вид всего окна, и я могу остановить его? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть эта милая маленькая программа (приложение 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 = []
        }
    }
}

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

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

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

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

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

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

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

...