我想在Mac OS X应用程序中控制主屏幕的亮度(如F1 / F2按钮)。在iOS中,有类似这样的内容:
UIScreen.mainScreen().brightness = CGFloat(0.5)
在OSX中我们有NSScreen,很高兴找到主屏幕,但它错过了.brightness
方法。
那么如何在OSX上使用Swift调整显示器亮度?
答案 0 :(得分:11)
在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, 0, kIODisplayBrightnessKey, level)
IOObjectRelease(service)
}
}
}
setBrightnessLevel(0.5)