no-comment/keyboardtoolbar
A SwiftUI Toolbar for your iOS keyboard.
Installation
Supports iOS 14.0+.
Swift Package Manager
Add https://github.com/cameronshemilt/KeyboardToolbar to your Package Dependencies.
Usage
The KeyboardToolbar can contain multiple KeyboardToolbarItems you provide. You can additionally style the toolbar (size, color, padding etc.) via a KeyboardToolbarStyle.
import KeyboardToolbar
let toolbarItems: [KeyboardToolbarItem] = [
.init(systemName: "bold", callback: {}),
.init(systemName: "italic", callback: {}),
.init(systemName: "underline", callback: {}),
.dismissKeyboard
]
struct ContentView: View {
@State private var text: String = ""
var body: some View {
Form {
TextField("Input", text: $text)
}
.keyboardToolbar(toolbarItems)
}
}API
KeyboardToolbar
| Parameter | Type | Optional | Description | | ------------- | ----------------------- | ------------ | ------------------------------------------------------------ | | items | [KeyboardToolbarItem] | No | All of the KeyboardToolbarItems you want the Toolbar to contain. | | style | KeyboardToolbarStyle | Yes | The styling of the toolbar. |
Use by attaching .keyboardToolbar(...) to the outermost part of your View.
KeyboardToolbarItem
Toolbar items can either be an image/icon or text.
Image Based
| Parameter | Type | Optional | Description | | ------------- | ---------------------- | ------------ | ------------------------------------------------------------ | | image | Image | No | The image/icon of the toolbar icon. Convenience initializers exist for systemName and imageName | | color | Color | Yes | Color of the image/icon | | isFixed | KeyboardToolbarEdge? | Yes | Whether the item should be sticky or not. Possible values: nil, .leading or .trailing. | | callback | () -> Void | No | Action the item should perform when pressed |
Text Based
| Parameter | Type | Optional | Description | | ------------- | ---------------------- | ------------ | ------------------------------------------------------------ | | text | String | No | The text of the toolbar item. Alternative to displaying an image. | | color | Color | Yes | Color of the image/icon | | isFixed | KeyboardToolbarEdge? | Yes | Whether the item should be sticky or not. Possible values: nil, .leading or .trailing. | | callback | () -> Void | No | Action the item should perform when pressed |
Presets
.dismissKeyboard: A button fixed to the right side that will dismiss the keyboard when tapped.
KeyboardToolbarStyle
| Parameter | Type | Optional | Description | | ----------------- | --------- | -------- | ------------------------------------------------------------ | | backgroundColor | Color | Yes | The background color of the toolbar. | | height | CGFloat | Yes | Height of the toolbar. | | itemSize | CGFloat | Yes | Size of the toolbar items. | | itemSpacing | CGFloat | Yes | Spacing between the toolbar items. | | dividerColor | Color | Yes | Color of the divider above the toolbar, as well as the dividers between the fixed and not fixed items. | | dividerWidth | CGFloat | Yes | Width of the dividers. |
Presets
.standard.contrast
Package Metadata
Repository: no-comment/keyboardtoolbar
Default branch: main
README: README.md