[解決済み] SwiftUI。TextFieldをファーストレスポンダーにするには?
2022-07-30 02:47:57
質問
ここで、私の
SwiftUI
のコードです。
struct ContentView : View {
@State var showingTextField = false
@State var text = ""
var body: some View {
return VStack {
if showingTextField {
TextField($text)
}
Button(action: { self.showingTextField.toggle() }) {
Text ("Show")
}
}
}
}
私が欲しいのは、テキストフィールドが 見える になったとき、テキストフィールドを最初のレスポンダにすることです。(すなわち、フォーカスを受け取り、キーボードをポップアップさせる)。
どのように解決するのですか?
iOS 15.0 以降
macOS 12.0+ です。
Mac Catalyst 15.0+。
tvOS 15.0+。
watchOS 8.0+
使用方法
focused(_:)
を使う。
フォーカスされた(_:)
このビューのフォーカスの状態を、与えられた ブール値 の値にバインドしてビューを修正します。
struct NameForm: View {
@FocusState private var isFocused: Bool
@State private var name = ""
var body: some View {
TextField("Name", text: $name)
.focused($isFocused)
Button("Submit") {
if name.isEmpty {
isFocued = true
}
}
}
}
使用方法
focused(_:equals:)
を使用します。
focused(_:equals:)
与えられた状態値にそのフォーカス状態をバインドすることによって、このビューを変更します。
struct LoginForm: View {
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)
}
}
}
}
}
SwiftUIのドキュメント
更新情報
でテストしてみました。
xCode version 13.0 beta 5 (13A5212g)
. それは動作します
関連
-
Swift Error fatal error: Optional value のアンラップ中に予期せず nil を発見した。
-
[解決済み】プライベートAPIを使用せずに現在のファーストレスポンダーを取得する。
-
[解決済み] Swiftで1つのビューコントローラの向きを縦向きのみに固定する方法
-
[解決済み] Swiftダブルからストリング
-
[解決済み] Swift 3でカスタム通知を作成するには?
-
[解決済み] swiftで改行なしの印刷をする
-
[解決済み] ""内の二重引用符を印刷するには?
-
[解決済み] Swiftで範囲を作成する方法は?
-
[解決済み] Swift: PREPROCESSORフラグ(`#if DEBUG`など)を使ってAPIキーを実装する方法とは?
-
[解決済み] Swift - 複数条件でオブジェクトの配列を並べ替える
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swift Error fatal error: Optional value のアンラップ中に予期せず nil を発見した。
-
Swift の Optional 値 && Optional のアンラップ時に予期せず nil が検出された場合の説明
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] SwiftUIでのアクティビティ表示
-
[解決済み] クラス 'ViewController' は swift で初期化されません。
-
[解決済み] ""内の二重引用符を印刷するには?
-
[解決済み] Swiftで範囲を作成する方法は?
-
[解決済み] Swift: インデックスで文字列配列を置換する
-
[解決済み] Swift - 複数条件でオブジェクトの配列を並べ替える
-
[解決済み] swiftにおける "precondition "と "assert "の違いとは?