macos – 在Mac OS X应用程序中调整屏幕亮度

我想在我的Mac OS X应用程序中控制主屏幕的亮度(如F1 / F2按钮).在iOS中,有这样的东西:

UIScreen.mainScreen().brightness = CGFloat(0.5)

在OSX中我们有NSScreen,很高兴找出主屏幕是什么,但它错过了.brightness方法.

那么如何在OSX上使用Swift调整显示器亮度?

解决方法

在OS X上没有这么好的API.

我们必须使用IOServiceGetMatchingServices来查找“IOdisplayConnect”(显示设备),然后使用kIOdisplayBrightnessKey来设置亮度:

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,kIOdisplayBrightnessKey,level)
            IOObjectRelease(service)

        }

    }
}

setBrightnessLevel(0.5)

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...