Имитация нажатия кнопки в macOS SwiftUI? - PullRequest
2 голосов
/ 23 февраля 2020

Я создал простой модальный диалог macOS в SwiftUI, который принимает от пользователя некоторый текст:

enter image description here

struct
OpenLocationView : View
{
    @State private var location: String = ""

    var body: some View
    {
        VStack
        {
            HStack
            {
                Text("Location:")
                TextField("https://", text: $location) { self.openLocation() }
            }

            HStack
            {
                Spacer()
                Button("Cancel") { self.dismiss() }
                Button("Open") { self.simulateClick() }
            }
        }
        .padding()
        .frame(minWidth: 500.0)
    }
}

Если пользователь нажимает введите или верните, я хотел бы кратко смоделировать нажатие на кнопку по умолчанию, прежде чем закрыть диалоговое окно. Как бы я сделал это в SwiftUI?

1 Ответ

1 голос
/ 23 февраля 2020

На самом деле вы почти сделали это, см. Встроенные комментарии

...
    HStack
    {
        Text("Location:")
        TextField("https://", text: $location) { 
           // this is onCommit: called on Return or Enter
           self.open() 
        }
    }

    HStack
    {
        Spacer()
        Button("Cancel") { self.dismiss() }
        Button("Open") { self.open() }
    }

...

func open() {
    self.openLocation() 
    self.dismiss()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...