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)
In OSX we have NSScreen, which is nice to find out what the main-screen is, but it misses the .brightness
method.
So how can I adjust the monitor brightness using Swift on OSX?
There's no such nice API for doing this on OS X.
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)
来源:https://stackoverflow.com/questions/32691397/adjust-screen-brightness-in-mac-os-x-app