How to determine if OSX is on battery and not in power

battery, cocoa, macos

Solution

`IOPSGetTimeRemainingEstimate` function returns amount of remaining power.

Cited from the discussion section:

If attached to an "Unlimited" power source, like AC power or any external source, the return value is kIOPSTimeRemainingUnlimited

If the system is on "Limited" power, like a battery or UPS, but is still calculating the time remaining, which may take several seconds after each system power event (e.g. waking from sleep, or unplugging AC Power), the return value is kIOPSTimeRemainingUnknown

Otherwise, if the system is on "Limited" power and the system has an accurate time remaining estimate, the system returns a CFTimeInterval estimate of the time remaining until the system is out of battery power.

If you require more detailed battery information, use IOPSCopyPowerSourcesInfo> and IOPSGetPowerSourceDescription>.

`IOPSNotificationCreateRunLoopSource` function can be used to register a callback function on power source related events.

Problem

I would like to adjust functionality of my app when in battery mode How to detect for an application it is in battery mode, etc. when the mode changes?

Original source