5822966f71ea1cd85e206cf91036cd7b398f7642
DockProgress
Show progress in your app's Dock icon
This package is used in production by the Gifski app. You might also like some of my other apps.
Requirements
- macOS 10.12+
- Xcode 11.4+
- Swift 5.2+
Install
Swift Package Manager
.package(url: "https://github.com/sindresorhus/DockProgress", from: "3.0.0")
Carthage
github "sindresorhus/DockProgress"
CocoaPods
pod 'DockProgress'
Usage
Manually set the progress
import Cocoa
import DockProgress
foo.onUpdate = { progress in
DockProgress.progress = progress
}
Specify a Progress instance
import Cocoa
import DockProgress
let progress = Progress(totalUnitCount: 1)
progress?.becomeCurrent(withPendingUnitCount: 1)
DockProgress.progressInstance = progress
The given Progress instance is weakly stored. It's up to you to retain it.
Styles
It comes with three styles. PR welcome for more.
Check out the example app in the Xcode project.
You can also draw a custom progress with .custom(drawHandler: (_ rect: CGRect) -> Void).
Bar
import DockProgress
DockProgress.style = .bar
This is the default.
Circle
import DockProgress
DockProgress.style = .circle(radius: 55, color: .systemBlue)
Make sure to set a radius that matches your app icon.
Badge
import DockProgress
DockProgress.style = .badge(color: .systemBlue, badgeValue: { getDownloadCount() })
Large badgeValue numbers will be written in kilo short notation, for example, 1012 → 1k.
Note: The badgeValue is not meant to be used as a numeric percentage. It's for things like count of downloads, number of files being converted, etc.
Related
- Defaults - Swifty and modern UserDefaults
- Preferences - Add a preferences window to your macOS app in minutes
- KeyboardShortcuts - Add user-customizable global keyboard shortcuts to your macOS app
- LaunchAtLogin - Add "Launch at Login" functionality to your macOS app
- More…
Description
Languages
Swift
100%


