實例方法
focused(_:
focused(_:equals:)
通過將其焦點狀態綁定到給定的狀態值來修改此視圖。
聲明
func focused<Value>(
_ binding: FocusState<Value>.Binding,
equals value: Value
) -> some View where Value : Hashable
返回值
修改後的視圖。
參數
binding
要注冊的狀態綁定。當焦點移動到修改後的視圖時,綁定將綁定值設置為相應的匹配值。如果調用者以編程方式將狀態值設置為匹配值,則焦點將移至修改後的視圖。當焦點離開修改後的視圖時,綁定將綁定值設置為
nil
。如果調用者將該值設置為nil
,則 SwiftUI 會自動解除焦點。value
確定綁定是否應更改時要匹配的值。
詳述
每當 binding
等於 value
時,使用此修飾符使視圖獲得焦點。通常,您創建一個可以接收焦點的字段枚舉,綁定此枚舉的一個實例,並將其案例分配給可聚焦視圖。
下麵的示例使用 LoginForm
枚舉的情況來綁定兩個 TextField
視圖的焦點狀態。登錄按鈕驗證字段並將綁定的focusedField
值設置為需要用戶更正問題的任何字段。
struct LoginForm {
enum Field: Hashable {
case usernameField
case passwordField
}
@State private var username = ""
@State private var password = ""
@FocusState private var focusedField: Field?
var body: some View {
Form {
TextField("Username", text: $username)
.focused($focusedField, equals: .usernameField)
SecureField("Password", text: $password)
.focused($focusedField, equals: .passwordField)
Button("Sign In") {
if username.isEmpty {
focusedField = .usernameField
} else if password.isEmpty {
focusedField = .passwordField
} else {
handleLogin(username, password)
}
}
}
}
}
要使用布爾值控製焦點,請改用View/focused(_:)
方法。
可用版本
iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+
相關用法
- Swift Optional focused(_:)用法及代碼示例
- Swift Optional focusedSceneValue(_:_:)用法及代碼示例
- Swift Optional focusSection()用法及代碼示例
- Swift Optional font(_:)用法及代碼示例
- Swift Optional foregroundStyle(_:)用法及代碼示例
- Swift Optional fullScreenCover(isPresented:onDismiss:content:)用法及代碼示例
- Swift Optional flipsForRightToLeftLayoutDirection(_:)用法及代碼示例
- Swift Optional fixedSize()用法及代碼示例
- Swift Optional fullScreenCover(item:onDismiss:content:)用法及代碼示例
- Swift Optional frame(width:height:alignment:)用法及代碼示例
- Swift Optional fixedSize(horizontal:vertical:)用法及代碼示例
- Swift Optional flatMap(_:)用法及代碼示例
- Swift Optional symbolVariant(_:)用法及代碼示例
- Swift Optional popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代碼示例
- Swift Optional mask(alignment:_:)用法及代碼示例
- Swift Optional listSectionSeparatorTint(_:edges:)用法及代碼示例
- Swift Optional badge(_:)用法及代碼示例
- Swift Optional keyboardType(_:)用法及代碼示例
- Swift Optional clipShape(_:style:)用法及代碼示例
- Swift Optional preferredColorScheme(_:)用法及代碼示例
- Swift Optional background(_:ignoresSafeAreaEdges:)用法及代碼示例
- Swift Optional saturation(_:)用法及代碼示例
- Swift Optional overlay(alignment:content:)用法及代碼示例
- Swift Optional colorMultiply(_:)用法及代碼示例
- Swift Optional confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Optional focused(_:equals:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。