为什么使用contentFilters会改变整个窗口的外观,我可以停止它吗?

时间:2019-02-15 01:25:40

标签: macos appkit cifilter macos-darkmode

我有这个可爱的小程序(默认的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。单击它时,它会变得模糊。

但是,在Mojave的暗模式下,切换此选项也会更改窗口的整个样式。它变得更暗,透明度更低。

为什么?有办法阻止这种情况吗?我想继续使用contentFilters,但是我不想更改一个小视图来更改整个窗口的外观。

似乎在窗口中任何位置的任何NSView上设置任何非空contentFilters都会更改整个窗口。我真的不知道该尝试什么,或者为什么会发生这种情况。我什至不知道用什么词来描述窗户上发生的事情!

  • 在黑暗模式下的窗口中的普通按钮:https://imgur.com/HB5cMVw-注意它是黄色的,因为它位于黄色的桌面背景上。

  • 在黑暗模式下窗口中的按钮模糊:https://imgur.com/dXUbvBn-请注意它更暗,并且颜色不同,因为它不会与背景模糊。

有什么办法可以阻止这种情况的发生?还是至少永久性地将其打开,这样更改contentFilters不会使所有内容混乱?

0 个答案:

没有答案