Добавление TabGestureRecognizer в TextField - PullRequest
0 голосов
/ 20 ноября 2018

Все мои UiTextFields создаются программно, поэтому я не могу просто щелкнуть правой кнопкой мыши на функции onTab и перенести ее в файл swift.

Я попытался добавить распознаватель жестов в текстовое поле, но сейчасЯ должен дважды щелкнуть, чтобы сработал clickTextField ().

// make clickable
let clickName = MyTapGesture(target: self, action: #selector(ViewMain.clickTextField(_:)))
clickName.count_of_selection = String(i)
self.finishName[i].addGestureRecognizer(clickName)

Как мне сделать так, чтобы это работало одним щелчком мыши.Может быть, другой подход?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

попробуйте установить значение тега для каждого UITextField, чтобы иметь возможность выполнять различие между ними.Например:

var iter = 0 //Defaults auto-incrementation                                        

let textField = UITextField()
textField.frame =  CGRect(x: 20, y: y, width: Int(UIScreen.main.bounds.width-40), height:50)
textField.placeholder = title + " :"

//Setting the tag            
textField.tag = iter

//Setting the controller as delegate to UITextField
textField.delegate = self

 //AddSubview
 self.view.addSubview(textField)

 //Auto-incrementation
 iter += 1

Вам также необходимо использовать методы делегата UITextField:

//TODO: Declare textFieldDidBeginEdditing here :
    func textFieldDidBeginEditing(_ activeTextField: UITextField) {
                 //Code
}
//TODO: Declare textFieldDidEndEditing here :
func textFieldDidEndEditing(_ activeTextField: UITextField) {
                 //Code
}

В зависимости от ваших потребностей вы можете использовать больше или меньше методов.Удачи.

0 голосов
/ 20 ноября 2018

UITextField имеет жест касания.Вам нужно использовать его методы делегата:

func textFieldShouldBeginEditing(_ textField: UITextField)
func textFieldDidEndEditing(_ textField: UITextField)
func textFieldShouldEndEditing(_ textField: UITextField)
func textFieldDidBeginEditing(_ textField: UITextField)
func textFielShouldClear(_ textField: UITextField)
func textFielShouldReturn(_ textField: UITextField)

Не забудьте

yourTextField.delegate = self

после создания расширения для себя vc:

extension ViewController: UITextFieldDelegate {
    // here you add the necessary delegate methods for your textFields
}

Примечание: выне нужно реализовывать каждый метод.Используйте только тот, который вам нужен.Более подробную информацию можно найти на AppleDeleveloper .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...