Skip to content

Releases: LZhenHong/SettingsKit

v0.0.4

Choose a tag to compare

@LZhenHong LZhenHong released this 02 Mar 07:32

Improvements

  • Add visiblePanes computed property to SettingsWindowController — returns only enabled panes currently displayed in the toolbar
  • panes now preserves the original array passed to the initializer, including disabled panes
  • Replace deprecated NSApp.activate(ignoringOtherApps:) with NSApp.activate()
  • Simplify constrainToSuperviewBounds() to return Void
  • Remove @ViewBuilder from SettingsPane.view protocol requirement

Documentation

  • Update README API reference with visiblePanes property
  • Update DocC Getting Started guide to clarify visible pane index semantics
  • Regenerate DocC archive
  • Add CLAUDE.md for Claude Code guidance

v0.0.3

Choose a tag to compare

@LZhenHong LZhenHong released this 10 Dec 09:41

Bug Fixes

  • Fixed window not centering when calling show(paneIndex:) with a pane index parameter

v0.0.2

Choose a tag to compare

@LZhenHong LZhenHong released this 10 Dec 08:12

What's Changed

New Features

  • Pane Selection API: Added programmatic control for selecting settings panes
    • selectPane(at:) - Select a specific pane by index at runtime
    • show(paneIndex:level:) - Show the settings window with a specific pane pre-selected
    • selectedPaneIndex - Get the currently selected pane index

Breaking Changes

  • show(_:) method signature changed to show(paneIndex:level:)
    • The level parameter now requires a label
    • Migration: Replace show(.normal) with show(level: .normal)

Usage Example

// Show window and select the second pane directly
settingsWindowController?.show(paneIndex: 1)

// Or select a pane at runtime
settingsWindowController?.selectPane(at: 2)

// Get the currently selected pane index
let currentIndex = settingsWindowController?.selectedPaneIndex

v0.0.1 - Initial Release

Choose a tag to compare

@LZhenHong LZhenHong released this 01 Dec 08:53

SettingsKit v0.0.1

The initial release of SettingsKit - a lightweight Swift framework for creating macOS preferences windows with SwiftUI content in
AppKit-based applications.

Features

  • 🎨 Native macOS toolbar-style tab interface - Uses NSTabViewController with .toolbar style
  • 🔗 SwiftUI content support - Write your settings UI in SwiftUI while using AppKit window management
  • 📐 Automatic window resizing - Smoothly animates window size when switching between tabs
  • Accessibility support - Respects system "Reduce Motion" setting
  • 📦 Simple protocol-based API - Just conform to SettingsPane protocol