0

我有这个可爱的小程序(默认的 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,但我不想改变一个小视图来改变整个窗口的外观。

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

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

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

有没有办法阻止这种情况发生?或者至少将其永久打开,因此更改 contentFilters 不会搞砸一切?

4

0 回答 0