實例方法
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 Never onTapGesture(count:perform:)用法及代碼示例
- Swift Never onChange(of:perform:)用法及代碼示例
- Swift Never opacity(_:)用法及代碼示例
- Swift Never overlay(_:in:fillStyle:)用法及代碼示例
- Swift Never offset(x:y:)用法及代碼示例
- Swift Never overlay(_:ignoresSafeAreaEdges:)用法及代碼示例
- Swift Never overlay(alignment:content:)用法及代碼示例
- Swift Never offset(_:)用法及代碼示例
- Swift Never pageCommand(value:in:step:)用法及代碼示例
- Swift Never colorMultiply(_:)用法及代碼示例
- Swift Never accessibilityAction(action:label:)用法及代碼示例
- Swift Never alert(isPresented:error:actions:message:)用法及代碼示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代碼示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代碼示例
- Swift Never position(x:y:)用法及代碼示例
- Swift Never position(_:)用法及代碼示例
- Swift Never luminanceToAlpha()用法及代碼示例
- Swift Never accessibilityAction(_:_:)用法及代碼示例
- Swift Never previewDisplayName(_:)用法及代碼示例
- Swift Never badge(_:)用法及代碼示例
- Swift Never progressViewStyle(_:)用法及代碼示例
- Swift Never buttonStyle(_:)用法及代碼示例
- Swift Never popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代碼示例
- Swift Never projectionEffect(_:)用法及代碼示例
- Swift Never background(_:ignoresSafeAreaEdges:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never onSubmit(of:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。