Я создал простой модальный диалог macOS в SwiftUI, который принимает от пользователя некоторый текст:
![enter image description here](https://i.stack.imgur.com/KwgPW.png)
Это представлено через Storyboard Segue от пункт меню для NSWindowController
, который содержит NSHostingController
:
class
OpenLocationController: NSHostingController<OpenLocationView>
{
@objc
required
dynamic
init?(coder: NSCoder)
{
let view = OpenLocationView()
super.init(coder: coder, rootView: view)
}
}
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)
}
}
Снимок экрана раскадровки:
![enter image description here](https://i.stack.imgur.com/0DqKs.png)
Я хотел бы автоматически сфокусировать текстовое поле и выделить весь текст в нем при отображении диалогового окна. Я также хотел бы, чтобы клавиша Tab фокусировалась на нем (по какой-то причине это тоже не работает, хотя это было бы спорным, если бы я мог просто сфокусировать его на дисплее). Как бы я сделал это в SwiftUI?