代码之家  ›  专栏  ›  技术社区  ›  Stylin

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

  •  0
  • Stylin  · 技术社区  · 6 年前

    我有一个可爱的小程序(默认的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 --请注意,它更暗,颜色也不同,因为它不会与背景模糊。

    有没有办法阻止这种事情发生?或者至少永久打开它,这样更改内容过滤器就不会把一切都搞糟?

    0 回复  |  直到 6 年前