SwiftUI键盘提交修饰符submitLabel
SwiftUI键盘提交修饰符submitLabel

SwiftUI键盘提交修饰符submitLabel

在 SwiftUI 中,submitLabel 是一种修饰符,用于自定义键盘右下角的提交按钮标签。这个功能通常用于处理用户在输入字段(例如 TextField 或 SecureField)中的输入,并为用户提供更加直观的提交动作。

基础用法

可以使用 .submitLabel() 修饰符来指定按钮的标签,例如 done、return、search 等。

import SwiftUI

struct ContentView: View {
    @State private var text: String = ""
    
    var body: some View {
        TextField("Search", text: $text)
            .textFieldStyle(.roundedBorder)
            .padding()
            .submitLabel(.route) // 改变 Return 键为“route”
            .onSubmit {
                print("Searching for: \(text)")
            }
    }
}

支持的 SubmitLabel 类型

submitLabel 接受一个类型为 SubmitLabel 的值,该值定义了键盘右下角的按钮标签。以下是常见选项:

结合 onSubmit

submitLabel 通常与 onSubmit 一起使用,用于监听用户按下键盘提交按钮后的操作:

import SwiftUI

struct LoginView: View {
    @State private var username = ""
    @State private var password = ""

    var body: some View {
        VStack {
            TextField("Username", text: $username)
                .submitLabel(.next)
                .onSubmit {
                    // 跳转到下一个输入字段
                    print("Username submitted: \(username)")
                }
                .padding()

            SecureField("Password", text: $password)
                .submitLabel(.go)
                .onSubmit {
                    // 执行登录逻辑
                    print("Password submitted: \(password)")
                }
                .padding()
        }
        .padding()
    }
}

在这个例子中:

用户在 “Username” 字段按下提交后,系统响应 onSubmit 中的逻辑。

用户在 “Password” 字段按下提交后,可以触发登录功能。

设备支持

submitLabel 在支持软件键盘的设备上生效,例如:

iPhone 和 iPad 的键盘

macOS 的键盘输入体验也支持此功能

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注