实例方法
on
onSubmit(of:_:)
添加当用户向此视图提交值时要执行的操作。
声明
func onSubmit(
of triggers: SubmitTriggers = .text,
_ action: @escaping (() -> Void)
) -> some View
参数
triggers
应该调用提供的操作的触发器。
action
在提交值时执行的操作。
详述
对于所提供的操作,不同的视图可能有不同的触发器。当用户按下硬件或软件返回键时,TextField
或 SecureField
将触发此操作。此修饰符还可以将此操作绑定到默认操作键盘快捷键。您可以在单个视图或整个视图层次结构上设置此操作。
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+
相关用法
- Swift Optional onChange(of:perform:)用法及代码示例
- Swift Optional onTapGesture(count:perform:)用法及代码示例
- Swift Optional overlay(alignment:content:)用法及代码示例
- Swift Optional offset(_:)用法及代码示例
- Swift Optional overlay(_:ignoresSafeAreaEdges:)用法及代码示例
- Swift Optional overlay(_:in:fillStyle:)用法及代码示例
- Swift Optional offset(x:y:)用法及代码示例
- Swift Optional opacity(_:)用法及代码示例
- Swift Optional symbolVariant(_:)用法及代码示例
- Swift Optional popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Optional mask(alignment:_:)用法及代码示例
- Swift Optional listSectionSeparatorTint(_:edges:)用法及代码示例
- Swift Optional badge(_:)用法及代码示例
- Swift Optional fullScreenCover(isPresented:onDismiss:content:)用法及代码示例
- Swift Optional keyboardType(_:)用法及代码示例
- Swift Optional clipShape(_:style:)用法及代码示例
- Swift Optional preferredColorScheme(_:)用法及代码示例
- Swift Optional background(_:ignoresSafeAreaEdges:)用法及代码示例
- Swift Optional saturation(_:)用法及代码示例
- Swift Optional focusSection()用法及代码示例
- Swift Optional colorMultiply(_:)用法及代码示例
- Swift Optional confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)用法及代码示例
- Swift Optional focused(_:equals:)用法及代码示例
- Swift Optional hidden()用法及代码示例
- Swift Optional previewDevice(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional onSubmit(of:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。