实例方法
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:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。