在Mac OS X应用程序中调整屏幕亮度 [英] Adjust screen brightness in Mac OS X app

查看:829
本文介绍了在Mac OS X应用程序中调整屏幕亮度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要控制Mac OS X应用程式中主萤幕的亮度(例如F1 / F2按钮)。在iOS中,有这样的:

I want to control the brightness of the main-screen within my Mac OS X app (like the F1/F2 buttons). In iOS, there's something like this:

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

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

In OSX we have NSScreen, which is nice to find out what the main-screen is, but it misses the .brightness method.

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

So how can I adjust the monitor brightness using Swift on OSX?

推荐答案

在OS X上没有这样的API。

There's no such nice API for doing this on OS X.

我们必须使用 IOServiceGetMatchingServices IODisplayConnect(显示设备),然后使用 kIODisplayBrightnessKey 设置亮度:

We have to use IOServiceGetMatchingServices to find "IODisplayConnect" (the display device) then use the kIODisplayBrightnessKey to set the brightness:

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)

        }

    }
}

setBrightnessLevel(0.5)

这篇关于在Mac OS X应用程序中调整屏幕亮度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆