SUITextField:高度可定制的SwiftUI UITextField封装组件





项目名称:SUITextField

项目概述

SUITextField是一个开源项目,提供了一个SwiftUI包装器,封装了UITextField,使得在SwiftUI中使用文本输入字段变得更加灵活和可定制。它支持iOS 15的新特性,如ParseableFormatStyle,同时也兼容旧版本iOS的Foundation.Formatter。该项目还提供了DocC文档,方便开发者查阅和使用。

功能特点

  • 输入视图和输入配件视图:支持InputViewInputAccessoryView

  • 左右视图:支持LeftViewRightView

  • UITextFieldDelegate方法:所有UITextFieldDelegate方法都作为SwiftUI修饰符暴露。

  • 程序化导航:类似于iOS 15的FocusState的程序化导航。

  • 默认ResponderNavigatorView:提供了一个默认的ResponderNavigatorView,可以作为InputAccessoryView使用,以在文本字段之间导航。

  • 属性占位符:支持属性化的占位符。

  • DocC文档:项目提供了Apple的DocC生成文档。

安装方法

SUITextField可以通过Swift Package Manager安装:

  1. 在Xcode中打开File/Swift Packages/Add Package Dependency...菜单。

  2. 复制并粘贴包URL:

https://github.com/ricocrescenzio95/SUITextField

更多详细信息可以参考Adding Package Dependencies to Your App文档。

使用方法

如下所示,像使用任何其他SwiftUI视图一样使用SUITextField:

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) // 添加默认ResponderNavigatorView作为输入配件视图
                    }
                    .onReturnKeyPressed {
                        focus = nil // 设置focus为nil以在返回键敲击时关闭键盘
                    }
                    .leftView { // 添加左视图以清除文本
                        Button(action: { text = "" }) {
                            Image(systemName: "trash")
                        }
                        .padding(.horizontal, 2)
                    }
                    .responder($focus, equals: .first)
                    .uiTextFieldTextLeftViewMode(.whileEditing)
                SUITextField(text: .constant(date.description))
                    .inputAccessoryView {
                        MyAccessoryView() // 添加自定义配件视图
                    }
                    .inputView {
                        // 使用日期选择器作为输入视图!
                        DatePicker("Select date", selection: $date)
                            .frame(maxWidth: .infinity, maxHeight: .infinity)
                            .datePickerStyle(.wheel)
                            .labelsHidden()
                    }
                    .responder($focus, equals: .second)
            }
            .padding()
        }
        // 将样式应用到所有子文本字段!
        .uiTextFieldBorderStyle(.roundedRect)
    }

    // 更多代码...
}

 

或许喜欢

RichTextKit:Swift和SwiftUI中编辑富文本的SDK

RichTextKit是一个Swift SDK,支持在Swift和SwiftUI中编辑富文本,具备文本样式、字体、颜色等多种功能,并提供跨平台的RichTextEditor。

最近更新 2024-12-09

SwiftUICoreImage:简化Core Image在SwiftUI中的使用

SwiftUICoreImage是一个开源库,旨在简化在SwiftUI中使用Core Image进行图像处理的过程,提供链式滤镜应用和渲染到SwiftUI视图的功能。

最近更新 2024-12-10

LightDarkMode-ToggleStyle:SwiftUI自定义开关样式与动画

LightDarkMode-ToggleStyle是一个SwiftUI开源项目,提供自定义开关样式和流畅动画效果,适用于iOS应用的UI设计和交互优化。

最近更新 2025-01-07

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1