あなたがこれを行うための、私が知っている唯一の方法は
- に設定するUITextField
- 後ろのUIViewを入れている:私も試した
let gestureArray = NamTxtBoxVal.gestureRecognizers
var tapGesture = UITapGestureRecognizer()
for idxVar in gestureArray!
{
if let tapVar = idxVar as? UITapGestureRecognizer
{
if tapVar.numberOfTapsRequired == 2
{
tapGesture = tapVar
NamTxtBoxVal.removeGestureRecognizer(tapGesture)
}
}
}
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(namFnc(_:)))
doubleTap.numberOfTapsRequired = 2
doubleTap.delegate = self
tapGesture.requireGestureRecognizerToFail(doubleTap)
NamTxtBoxVal.addGestureRecognizer(doubleTap)
textFieldのuserInteractionEnabled = false
- UIViewにダブルタップジェスチャを追加
これにより、キーボードをポップアップしたり編集モードに入ることなく、TextField領域にダブルタップを登録することができます。
ダブルタップ後にtextFieldを使って何をしようとしているのかよく分かりませんが、この時点でほとんどのものをプログラムで処理できるはずです。このため
コードは次のとおりです。ウル場合
class ViewController: UIViewController {
@IBOutlet weak var myViewBehindMyTextField: UIView!
@IBOutlet weak var myTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.myTextFieldTapped(_:)))
tapGesture.numberOfTapsRequired = 2
myViewBehindMyTextField.addGestureRecognizer(tapGesture)
}
func myTextFieldTapped(sender: UITapGestureRecognizer) {
print("Double tapped on textField")
}
}
、シングルタップで編集TextFieldには私が必要とされ、離れて行くウィル。 –
ああ、あなたがシングルタップでそれが必要だったのか分からなかった。ごめんなさい。その場合、キーボードが上がったり消えたりせずにこれを実行する方法がわかりません。 –
@SujayUNはUITextFieldの上にclearColor UIViewを置くことを考えています。それから、UIViewは、単一のタップである場合にのみUITextFieldにタップを渡し、それに応じてUIViewにダブルタップを処理させます。 –