Почему я должен щелкнуть дважды, чтобы переключить вкладку, когда текстовое поле в активном в данный момент виде вкладки активно для редактирования? - PullRequest
0 голосов
/ 03 ноября 2019

Используя SwiftUI для приложения Mac (Swift 5.1, Xcode 11.1), я создал простой вид, содержащий вид вкладок с двумя вкладками (Tab 1, Tab 2). Представление Tab 1 содержит только текстовую метку «TabItem 1», а Tab 2 содержит текстовое поле.

Когда вкладка Tab 2 активна, и я в настоящее время редактирую текстовое поле, попытка переключиться на первую вкладку приводит кактивация представления Tab 1, однако панель вкладок по-прежнему выделяет Tab 2 как активную в данный момент.

Я попытался обернуть AppKit NSTextField в NSViewRepresentable, чтобы использовать его в качестве текстового поля. Тот же результат. Я пытался что-то выяснить с помощью firstRepsonser, но документация не предоставляет никакой информации об этом относительно TextField.

struct SwiftUIView: View {

@State private var textFieldContent: String = ""

var body: some View {
    TabView{
        Text("TabItem 1").tabItem{Text("Tab 1").tag(0)}
        TextField("TabItem 2", text:$textFieldContent).tabItem{Text("Tab 2").tag(1)}
    }
}

Я ожидаю, что после нажатия наНа вкладке 1 редактирование текстового поля на вкладке 2 автоматически завершается, и происходит надлежащий переход на вкладку 1.

...