SwiftUI 中 TextField、SecureField、TextEditor的API 参数详解

TextField、SecureField、TextEditor 三兄弟是用来接受用户输入、编辑文本的控件,作为最常用的控件之一,在几乎所有需要输入的地方都需要用到它,以下是介绍常用的API使用方式。

  • TextField
    • 普通单行文本编辑控件
  • SecureField
    • 普通单行密码输入控件
  • TextEditor
    • 多行长文本编辑控件
    • 默认没有边框

各类型释义

  • textFieldStyle 输入框样式类型
    • .automatic 系统基于上下文自动推荐
    • .plain 没有边框样式输入框
    • .roundedBorder 系统默认的圆角边框样式
  • keyboardType 输入框关联键盘类型
    • .default 默认类型
    • .asciiCapable 输入英文字母、ASCII字符的键盘
    • .numbersAndPunctuation 显示数字和标点符号的键盘
    • .URL 方便输入URL地址的键盘
    • .numberPad 适合语言环境的拨号呼叫键盘 (0-9, ۰-۹, ०-९.) 适用于PIN输入
    • .phonePad 电话呼叫键盘 (1-9, *, 0, #, 数字下面带字母)
    • .namePhonePad 输入人名和电话号码的特殊键盘
    • .emailAddress 输入电子邮件的特殊键盘 (突出显示 空格、@、小数点)
    • .decimalPad 带小数点的数字键盘
    • .twitter twitter输入定制键盘 ( @ # )
    • .webSearch 方便URL输入的默认键盘类型 (突出 @ 、小数点)
    • .asciiCapableNumberPad ASCII的数字键盘(0-9)
  • submitLabel 右下角提交键盘显示
    • .done 显示完成
    • .go 显示跳转
    • .send 显示 发送
    • .join 显示加入
    • .route
    • .search 显示搜索
    • .return
    • .next 显示下一步
    • .continue
  • textInputAutocapitalization 自动切换大写
    • .characters 每个字符
    • .sentences 每个句子的首字母
    • .words 每个单词的首字母
    • .never 完全不切换
    • .none 仅首字母大写
struct TextView: View {
    
    @State private var username: String = ""
    @State private var password: String = ""
    @State private var fullText: String = ""
    
    var body: some View {
        Form {
            TextField(text: $username, prompt: Text("用户名")) {
                
            }
            .background(Color.green.opacity(0.2))
            // 自动大小写
            .autocapitalization(.none)
            .disableAutocorrection(true)
            // 输入框样式类型  上文有说明
            .textFieldStyle(.roundedBorder)
            .speechAdjustedPitch(0.5)
            // 输入框关联键盘类型  上文有说明
            .keyboardType(.URL)
            
            // 右下角 return 按钮类型  上文有说明
            .submitLabel(.next)
            .onSubmit {
                // MARK: 右下角 return 按钮点击提交事件
            }
            
            
            SecureField(text: $password, prompt: Text("密码")) {
                Text("Password")
            }
            .background(Color.green.opacity(0.2))
            .submitLabel(.done)
            .onSubmit {
                
            }
            
            
            TextEditor(text: $fullText)
                .foregroundColor(Color.gray)
                .font(.custom("HelveticaNeue", size: 13))
                .lineSpacing(5)
                // 文本对齐方式
                .multilineTextAlignment(.leading)
                // 是否允许必要时压缩显示
                .allowsTightening(true)
                // 自动切换大写
                .textInputAutocapitalization(.words)
                .border(Color(UIColor.separator))
        }
        .disableAutocorrection(true)
        .textFieldStyle(.roundedBorder)
        .keyboardType(.default)
    }
}

  本文自 https://www.codeun.com 发布,相应代码均自主编写并严格审阅和测试,完整代码中包含丰富的学习笔记和使用方式、实用技巧。
  · 如若转载,请注明出处:https://www.codeun.com/archives/871.html ·

(0)
上一篇 2022-12-03 下午10:15
下一篇 2023-02-18 上午11:53

相关推荐

发表回复

登录后才能评论