Return Value 戻り値
The modified view.
Availability 有効性
Technology
func focused(_ condition: FocusState
<Bool
>.Binding
) -> some View
The modified view.
condition
The focus state to bind. When focus moves to the view, the binding sets the bound value to true
. If a caller sets the value to true
programmatically, then focus moves to the modified view. When focus leaves the modified view, the binding sets the value to false
. If a caller sets the value to false
, SwiftUI automatically dismisses focus.
Use this modifier to cause the view to receive focus whenever the the condition
value is true
. You can use this modifier to observe the focus state of a single view, or programmatically set and remove focus from the view.
In the following example, a single Text
accepts a user’s desired username
. The text field binds its focus state to the Boolean value username
. A “Submit” button’s action verifies whether the name is available. If the name is unavailable, the button sets username
to true
, which causes focus to return to the text field, so the user can enter a different name.
private var username: String = ""
private var usernameFieldIsFocused: Bool
private var showUsernameTaken = false
var body: some View {
VStack {
TextField("Choose a username.", text: $username)
.focused($usernameFieldIsFocused)
if showUsernameTaken {
Text("That username is taken. Please choose another.")
}
Button("Submit") {
showUsernameTaken = false
if !isUserNameAvailable(username: username) {
usernameFieldIsFocused = true
showUsernameTaken = true
}
}
}
}
To control focus by matching a value, use the focused(_:
method instead.