Releases: LZhenHong/SettingsKit
Releases · LZhenHong/SettingsKit
Release list
v0.0.4
Improvements
- Add
visiblePanescomputed property toSettingsWindowController— returns only enabled panes currently displayed in the toolbar panesnow preserves the original array passed to the initializer, including disabled panes- Replace deprecated
NSApp.activate(ignoringOtherApps:)withNSApp.activate() - Simplify
constrainToSuperviewBounds()to returnVoid - Remove
@ViewBuilderfromSettingsPane.viewprotocol requirement
Documentation
- Update README API reference with
visiblePanesproperty - Update DocC Getting Started guide to clarify visible pane index semantics
- Regenerate DocC archive
- Add CLAUDE.md for Claude Code guidance
v0.0.3
v0.0.2
What's Changed
New Features
- Pane Selection API: Added programmatic control for selecting settings panes
selectPane(at:)- Select a specific pane by index at runtimeshow(paneIndex:level:)- Show the settings window with a specific pane pre-selectedselectedPaneIndex- Get the currently selected pane index
Breaking Changes
show(_:)method signature changed toshow(paneIndex:level:)- The
levelparameter now requires a label - Migration: Replace
show(.normal)withshow(level: .normal)
- The
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?.selectedPaneIndexv0.0.1 - Initial Release
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
NSTabViewControllerwith.toolbarstyle - 🔗 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
SettingsPaneprotocol