FormView


一个易于使用的 SwiftUI 库,用于处理一组 TextFields(文本框)。

特性

用法

struct ContentView: View {
    
    @State var email: String = ""
    @State var phone: String = ""
    
    @State var emailFailedRules: [TextValidationRule] = []
    
    var body: some View {
        FormView {
            ScrollView(.vertical) {
                FormField(
                    "Email",
                    text: $email,
                    validationRules: [.email],
                    failedValidationRules: $emailFailedRules
                )
                if emailFailedRules.isEmpty == false {
                    Text("Email")
                        .foregroundColor(.red)
                }
                FormField(
                    "Phone",
                    text: $phone,
                    validationRules: [.digitsOnly],
                    inputRules: [.digitsOnly]
                )
            }
        }
    }
}

ValidationRules 用于在输入期间自动验证文本。所有未通过验证的规则都会出现在 failedValidationRules 中。

InputRules 用于防止不正确的输入。

您也可以使用 .formView() 修饰符代替 FormView

ScrollView(.vertical) {
    ...
}
.formView()

示例项目

ExampleApp 提供了更多关于 FormView 的有趣用例。

安装

Swift Package Manager

Swift Package Manager 是一种用于自动化 Swift 代码分发的工具。

在 Xcode 14 或更高版本中,选择 File > Add Packages...(文件 > 添加包...)。在搜索栏中,输入

https://github.com/maxial/FormView

然后继续安装。

您可以将 FormView 作为依赖项添加到 Package.swift 文件的 dependencies 值中

dependencies: [
    .package(url: "https://github.com/maxial/FormView", from: "main"),
]

许可

FormView 在 MIT 许可下发布。请参阅 LICENSE 了解详情。