Just use it as you would use any other SwiftUI view!
struct ContentView: View {
enum Responder {
case first
case second
}
@State private var text = "A test text"
@ResponderState var focus: Responder?
@State private var date = Date()
var body: some View {
ScrollView {
VStack {
SUITextField(text: $text, placeholder: "Insert a text...")
.inputAccessoryView {
ResponderNavigatorView(responder: $focus) // add default ResponderNavigatorView as input accessory view
}
.onReturnKeyPressed {
focus = nil // set focus to nil to close keyboard on return key tap
}
.leftView { // add a left view to clear text on tap
Button(action: { text = "" }) {
Image(systemName: "trash")
}
.padding(.horizontal, 2)
}
.responder($focus, equals: .first)
.uiTextFieldTextLeftViewMode(.whileEditing)
SUITextField(text: .constant(date.description))
.inputAccessoryView {
MyAccessoryView() // add a custom accessory view
}
.inputView {
// Use a date picker as input view!
DatePicker("Select date", selection: $date)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.datePickerStyle(.wheel)
.labelsHidden()
}
.responder($focus, equals: .second)
}
.padding()
}
// apply style to all children text field!
.uiTextFieldBorderStyle(.roundedRect)
}
// more code...
Documentation
Use Apple DocC generated documentation, from Xcode, Product > Build Documentation.
Known Issues
When an external keyboard is connected and the software keyboard is hidden,
on iOS 13/15 there are small layout jumps when switching from a text fields
On iOS 14 this behavior is worse: the system tries to re-layout the component infinitely! Need to understand what actually happens under the hood…
SwiftUI Text Field
A SwiftUI wrapper of UITextField that allows more customization
Key Features • Installation • Usage • Documentation • License
Key Features
InputView
andInputAccessoryView
LeftView
andRightView
UITextFieldDelegate
methods exposed asSwiftUI
modifiersFocusState
ResponderNavigatorView
usable as anInputAccessoryView
to navigate through text fieldsParseableFormatStyle
when usingiOS 15
Foundation.Formatter
when usingpre-iOS 15
Installation
SUITextField
can be installed using Swift Package Manager.In Xcode open File/Swift Packages/Add Package Dependency… menu.
Copy and paste the package URL:
For more details refer to Adding Package Dependencies to Your App documentation.
Usage
Just use it as you would use any other
SwiftUI
view!Documentation
Use Apple
DocC
generated documentation, from Xcode,Product > Build Documentation
.Known Issues
Check this issue.
Found a bug or want new feature?
If you found a bug, you can open an issue as a bug here
Want a new feature? Open an issue here
Yu can also open your own PR and contribute to the project! Contributing 🤝
License
This software is provided under the MIT license
Thanks Bebisim ❤️