✍️
watchOSアプリでテキスト入力インタフェースを呼び出す
リマインダーアプリの「追加」ボタンをタップすると、テキスト入力状態になり、音声やキーボードなどでテキストを入力できます。
SwiftUIでこれを実現するには、TextFieldLink
を使用します。
TextFieldLink
はwatchOS専用で、バージョン9.0から使用できます。
以下は実装例です。
struct ContentView: View {
@State
private var texts: [String] = []
var body: some View {
List(texts, id: \.self) { text in
Text(text)
}
.toolbar {
ToolbarItem(placement: .bottomBar) {
TextFieldLink(prompt: Text("テキストを入力")) {
Label("テキストを追加", systemImage: "pencil")
.foregroundColor(.blue)
} onSubmit: { newText in
texts.append(newText)
}
}
}
.padding()
}
}
実行すると、以下のようになります。(スクショはシミュレータのものですが、実機でも動作を確認しています)
細かい内容を後にして、テキストを入力して登録したい、というユースケースで使えそうです。
Discussion