swiftuiux/d3-menu-bar
- [x] Observing menu selection changes via generic PreferenceKey
Features
- [x] Observing menu selection changes via generic PreferenceKey
- [x] The color intensity automatically adjusts depending on color scheme (Color+Ext.swift) You don't need to set color for every scheme
- [x] Various strategies for the item menu width allocation
- [x] Set scroll position according the initial selection
- [x] Setting custom colors for the component
- [x] Customize menu item style [round or square]
- [x] iOS and macOS support
- [x] Dark and light scheme support
Required
1. enum
Define enum with menu items conforming to ``IMenuItem``
enum MenuItems: String, IMenuItem {
case one = "one"
case two = "two"
case three = "three"
}2. create menu bar
selected- pass value bound to @State var selected : MenuItems?values- Pass allCases as a parameter
MenuBar(values: MenuItems.allCases, selected: $selected)
.onSelectionChanged{ item in }Optional
strategy- default strategy for the item menu width allocation is auto
| Size strategy | Description | | --- | --- | |fit| Allocate all affordable space not scrollable| |auto| Auto size according the content | |flex(CGFloat)| Set up minimal width|
color- default value is .black
style- default style is round
| Style | Description | | --- | --- | |round| rounded corners | |square| squared corners |
Component init examples
@State var selected : MenuItems?
VStack{
MenuBar(values: items, selected: $selected, strategy: .flex(102), color: .green)
MenuBar(values: items, selected: $selected, color: .purple, style: .square)
MenuBar(values: items, selected: $selected, strategy: .fit, color: .blue)
MenuBar(values: items, selected: $selected, color: .red)
} [[click to watch expected UI behavior for the example]](https://youtu.be/PQRkU7yWUrk)
Code example
Take a look on the example preview in MenuContentView.swift or create a project, add the package and put MenuContentView() in ContentView()
Used in
Documentation(API)
- You need to have Xcode 13 installed in order to have access to Documentation Compiler (DocC)
- Go to Product > Build Documentation or ⌃⇧⌘ D
Package Metadata
Repository: swiftuiux/d3-menu-bar
Default branch: main
README: README.md