Как определить, когда TextField теряет фокус в SwiftUI для iOS? - PullRequest
2 голосов
/ 16 октября 2019
TextField("Name", text: $name)

Я нашел этот метод

func focusable(_ isFocusable: Bool = true, onFocusChange: @escaping (Bool) -> Void = { _ in }) -> some View

, но он доступен только для MacOS. Как я могу сделать что-то подобное для iOS?

1 Ответ

2 голосов
/ 16 октября 2019

Вы можете использовать инициализатор init(_:text:onEditingChanged:onCommit:), присутствующий в текстовом поле. Там вы получите действие, инициируемое, когда вы начнете редактирование и закончите редактирование. Вы можете найти минимальный пример ниже.

import SwiftUI

struct ContentView: View {
    @State private var greeting: String = "Hello world!"
    var body: some View {
        TextField("Welcome", text: $greeting, onEditingChanged: { (editingChanged) in
            if editingChanged {
                print("TextField focused")
            } else {
                print("TextField focus removed")
            }
        })
    }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...