**TextFieldによって、表示される、キーボード上の座標取得をしたいと考えております。
**
キーボード上でない座標取得は以下のコードで実現しました。
@State var xPos: CGFloat = 0 @State var yPos: CGFloat = 0 @State private var word: String = "" Image(systemName: "") .resizable() .padding() .gesture(DragGesture(minimumDistance: 0, coordinateSpace:.global).onChanged { dragGesture in self.xPos = dragGesture.location.x self.yPos = dragGesture.location.y print(self.xPos,self.yPos) print(dragGesture.translation) } .onEnded {dragGesture in self.xPos = dragGesture.location.x self.yPos = dragGesture.location.y print("Last",self.xPos,self.xPos) print("Last",dragGesture.translation) }) TextField("発語せよ", text: $word) .textFieldStyle(RoundedBorderTextFieldStyle()) // 入力域のまわりを枠で囲む .padding() // 余白を追加 Text("(word)")
gestureメソッドを用いて、取得した座標を(xPos,yPos)に代入しています。このgestureメソッドが、TextFieldによって、表示される、キーボード上ではうまく作動しません。
理由としましては、表示されるキーボードがswiftのUI部品ではなく、スマートフォンに内蔵しているものを借りてきているためだと推測しています。
なので、考えられる解決手段としては、表示されるキーボードの上に、画面全体に、Imageを貼り付ける、そこであらためて、gestureメソッドを用いる。というものですが、この方法がわかりません。また、この方法自体が正しいものなのかも判別つきません。
よろしくお願いいたします。
あなたの回答
tips
プレビュー