sochalewski/textfieldalert
A SwiftUI alert with text field(s) for iOS 13+ and tvOS 13+.
Requirements
- iOS 13.0+ or tvOS 13.0+
- Swift 5.1+
Installation
You can add TextFieldAlert to an Xcode project by adding it as a package dependency.
1. From the File menu, select Add Packages… 2. Enter https://github.com/sochalewski/TextFieldAlert into the package repository URL text field. 3. Add the package to your app target.
Usage
TextFieldAlert is exposed through View extension:
func textFieldAlert(
title: String?,
message: String?,
textFields: [TextFieldAlert.TextField],
actions: [TextFieldAlert.Action],
isPresented: Binding<Bool>
)You can use it in your code as follows:
struct ExampleView: View {
@State var isPresented = false
@State var text1 = ""
@State var text2 = ""
var body: some View {
VStack {
Button {
isPresented = true
} label: {
Text("Alert")
}
Text(text1)
Text(text2)
}
.textFieldAlert(
title: "Title",
message: "Message",
textFields: [
.init(text: $text1),
.init(text: $text2)
],
actions: [
.init(title: "OK")
],
isPresented: $isPresented
)
}
}More advanced usage (incl. moving the responsibility to a view model, some customization and enabling action buttons conditionally) is available in the Example app.
<img src="Resources/TextFieldAlert.gif" width="300">
License
TextFieldAlert is available under the MIT license. See the LICENSE file for more info.
Package Metadata
Repository: sochalewski/textfieldalert
Default branch: main
README: README.md