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.
KeyboardToolbar
A SwiftUI Toolbar for your iOS keyboard.
You can find example files in
Tests/ExampleViews
.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 aKeyboardToolbarStyle
.API
KeyboardToolbar
items
[KeyboardToolbarItem]
style
KeyboardToolbarStyle
Use by attaching
.keyboardToolbar(...)
to the outermost part of your View.KeyboardToolbarItem
Toolbar items can either be an image/icon or text.
Image Based
image
Image
color
Color
isFixed
KeyboardToolbarEdge?
nil
,.leading
or.trailing
.callback
() -> Void
Text Based
text
String
color
Color
isFixed
KeyboardToolbarEdge?
nil
,.leading
or.trailing
.callback
() -> Void
Presets
.dismissKeyboard
: A button fixed to the right side that will dismiss the keyboard when tapped.KeyboardToolbarStyle
backgroundColor
Color
height
CGFloat
itemSize
CGFloat
itemSpacing
CGFloat
dividerColor
Color
dividerWidth
CGFloat
Presets
.standard
.contrast