MacOS/OSXのesc
キーなどのキープレスや、iPadで外部キーボードを使用する場合に応答したい。これどうやってするの?
SwiftUIの onExitCommand
で@available
/#available
を使用することを考えました。 macOS/OSXだけでなく、SwiftUIでのキー入力にどのように応答できますか?
MacOSとtvOSでは、ビューにonExitCommand(perform:)
修飾子があります。 Appleの ドキュメント から:
ビューにフォーカスがある間、終了コマンドの受信に応答してトリガーされるアクションを設定します
ユーザーは、tvOSのメニューボタンまたはmacOSのエスケープキーを押して、終了コマンドを生成します。
例えば:
struct ContentView: View {
var body: some View {
VStack {
TextField("Top", text: .constant(""))
.onExitCommand(perform: {
print("Exit from top text field")
})
TextField("Bottom", text: .constant(""))
.onExitCommand(perform: {
print("Exit from bottom text field")
})
}
.padding()
}
}