当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Never onSubmit(of:_:)用法及代码示例


实例方法

onSubmit(of:_:)

添加当用户向此视图提交值时要执行的操作。

声明

func onSubmit(
    of triggers: SubmitTriggers = .text,
    _ action: @escaping (() -> Void)
) -> some View

参数

triggers

应该调用提供的操作的触发器。

action

在提交值时执行的操作。

详述

对于所提供的操作,不同的视图可能有不同的触发器。当用户按下硬件或软件返回键时,TextFieldSecureField 将触发此操作。此修饰符还可以将此操作绑定到默认操作键盘快捷键。您可以在单个视图或整个视图层次结构上设置此操作。


TextField("Username", text: $username)
    .onSubmit {
        guard viewModel.validate() else { return }
        viewModel.login()
    }

您可以使用 View/submitScope(_:) 修饰符来阻止来自控件的提交触发器在视图层次结构中向上传播到更高的 View.onSubmit(of:_:) 修饰符。


Form {
    TextField("Username", text: $viewModel.userName)
    SecureField("Password", text: $viewModel.password)


    TextField("Tags", text: $viewModel.tags)
        .submitScope()
}
.onSubmit {
    guard viewModel.validate() else { return }
    viewModel.login()
}

您可以使用不同的提交触发器来过滤应该调用提供的提交操作的触发器类型。例如,您可以提供值 SubmitTriggers/search 以仅听到源自可搜索修饰符提供的搜索字段的提交触发器。


@StateObject var viewModel = ViewModel()


NavigationView {
    SidebarView()
    DetailView()
}
.searchable(
    text: $viewModel.searchText,
    placement: .sidebar
) {
    SuggestionsView()
}
.onSubmit(of: .search) {
    viewModel.submitCurrentSearchQuery()
}

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Never onSubmit(of:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。