質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

476閲覧

【Swift】textView内をタップでカーソルが動かせない

konakizzi_mk

総合スコア21

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2022/06/03 07:33

どんなものを作成しているか

Twitterのようにコメント入力欄を設け、@入力でメンション機能も使えるようにしようとしています。

課題

コメント入力欄をtextViewで実装しているのですが、カーソルが長押しでしか移動できなくて困っています。
普通なら文字と文字の間をタップするとそこにカーソルが移動するはずです。しかし、textView内をタップしてもカーソルが移動せず、最後尾のままになってしまいます。

処理

Swift

1// テキストビューの外をタップした時にキーボードを閉じる 2let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapOutside (_:))) 3tapGesture.cancelsTouchesInView = false 4tapGesture.delegate = self 5self.view.addGestureRecognizer(tapGesture) 6 7@objc 8 func tapOutside(_ sender: UITapGestureRecognizer) { 9 textView.resignFirstResponder() 10 } 11//↑ここまではよく見るやつ 12//↓以下は、@入力でメンション先一覧を表示させ、textView内をタップでメンション先一覧を非表示にしたくて実装しています 13 14// テキストビューをタップした時 15let tapGestureTextView = UITapGestureRecognizer(target: self, action: #selector(self.tapTextView (_:))) 16textView.addGestureRecognizer(tapGestureTextView) 17 18@objc 19func tapTextView(_ sender: UITapGestureRecognizer) { 20 // メンション先一覧を開いていたら閉じる 21 if let vc = self.presentedViewController as? MemberListViewController { 22 vc.dismiss(animated: true, completion: nil) 23 } 24 textView.becomeFirstResponder() 25}

textViewタップでメンション先一覧を非表示にする処理がカーソルを動かせなくしている要因と思っています。しかし解決方法がわからず困っています。ご教示よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/06/03 08:28

`textView.becomeFirstResponder()`を削除してみたり、 ifの中に移動してみたり、 したら何か変わるでしょうか?
konakizzi_mk

2022/06/03 08:34

コメントありがとうございますmm 削除やifの中に移動してみたのですが、変わらずでした・・・
退会済みユーザー

退会済みユーザー

2022/06/03 09:13

すみません、、 UITapGestureRecognizerですと強めにイベントを奪ってしまう感じになってしまうのでしょうか。 下のリンク先のように、UITextViewを継承したクラスを実装して、タップのイベントを上書きする形で、「メンション先一覧を開いていたら閉じる」を実装してみたらどうでしょうか? https://terakoya.site/bb/ios-uitext-view-touch-event/
guest

回答1

0

自己解決

投稿2022/06/17 04:06

konakizzi_mk

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問