A macOS onboarding component.
- creates a window containing a configurable number of screens
- use buttons or gestures to navigate
- component size, layout and content easily are configurable
Install using Swift Package Manager. Use master branch.
- OS X 10.14+
- Xcode 11.0 or above
Either compile and run the example in the Demo folder or see the component used in Crypto Tools.
Use the following code in your AppDelegate.swift
or similar.
class AppDelegate: NSObject, NSApplicationDelegate {
private var onboardingWindowController: NSWindowController?
func applicationDidFinishLaunching(_ aNotification: Notification) {
let config = OnboardingConfig(
windowWidth: 350,
windowHeight: 430,
windowTitle: "my sample title",
pageCount: 3,
pageControlWidth: 200,
pageControlHeight: 20,
pageControlVerticalDistanceFromBottom: 20,
pageTransitionStyle: .stackBook
)
let pages = [
DTPageController(controllerId: "1"),
DTPageController(controllerId: "2"),
DTPageController(controllerId: "3")
]
let onboardingController = DTOnboardingController(config: config, pages: pages)
let frame = onboardingController.view.bounds
let myWindow = NSWindow(
contentRect: .init(origin: .zero, size: frame.size),
styleMask: [.closable, .miniaturizable, .resizable, .titled],
backing: .buffered,
defer: false
)
myWindow.title = config.windowTitle
myWindow.center()
onboardingWindowController = NSWindowController(window: myWindow)
onboardingWindowController?.contentViewController = onboardingController
onboardingWindowController?.showWindow(self)
}
}
This software is Open Source under the MIT license, see LICENSE for details.