xcode 在范围[重复]中找不到“UISscreen”

gdx19jrr  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(155)
    • 此问题在此处已有答案**:

Adjust screen brightness in Mac OS X app(1个答案)
去年关闭了。
我刚刚接触了Swift,想为我的MacBook开发一个快速实用程序,我写了下面的代码,但是它给了我错误"在作用域中找不到'UIScreen'"。

class AppDelegate: NSObject,NSApplicationDelegate{
    //...
    func applicationDidFinishLaunching(_ notification: Notification) {

        Timer.scheduledTimer(withTimeInterval: 10, repeats: true) { timer in
            UIScreen.mainScreen().brightness = CGFloat(0.0) //<- error here
        }
    }
    //...
}

最初我以为我错过了一个导入,但我找不到要导入的内容(UIKit,仅适用于iOS)。感谢您的帮助

uelo1irk

uelo1irk1#

任何以"UI"开头的内容都是iOS类,这些类在macOS应用中不可用。
macOS的等价类可能是NSScreen,尽管我认为它没有像您试图设置的那样的暴露亮度属性。

编辑:

在MacOS中似乎可以设置屏幕亮度,但你必须使用更低级的代码。
该链接的相关代码如下所示,它使用IOKit:

func setBrightnessLevel(level: Float) {

    var iterator: io_iterator_t = 0

    if IOServiceGetMatchingServices(kIOMasterPortDefault, IOServiceMatching("IODisplayConnect"), &iterator) == kIOReturnSuccess {

        var service: io_object_t = 1

        while service != 0 {

            service = IOIteratorNext(iterator)
            IODisplaySetFloatParameter(service, 0, kIODisplayBrightnessKey, level)
            IOObjectRelease(service)

        }

    }
}

相关问题