Contents

demianturner/DTOnboarding

A macOS onboarding component

Installation

Install using Swift Package Manager. Use master branch.

Dependencies

Requirements

  • OS X 10.14+
  • Xcode 11.0 or above

Demo/Example

Either compile and run the example in the Demo folder or see the component used in Crypto Tools.

Usage

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)
    }
}

License

This software is Open Source under the MIT license, see LICENSE for details.

Package Metadata

Repository: demianturner/DTOnboarding

Stars: 29

Forks: 3

Open issues: 1

Default branch: master

Primary language: swift

License: MIT

Topics: macos, macos-onboarding-component, onboarding, pagecontrol, pagecontroller, spm, swift

README: README.md