當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。