У меня есть пара UITextfields
в каждой ячейке таблицы. Путем нажатия кнопки «Готово» или касания вне клавиатуры клавиатура должна быть убрана.UITextfield внутри UITableViewCells - убрать клавиатуру
Моя проблема: метод textFieldShouldEndEditing
вызывается только при нажатии другого текстового поля, и клавиатура не будет удалена. Я думаю, что я реализовал необходимые части (методы делегата и протокола).
Кто-нибудь знает, чего я здесь не хватает ...?
Вот код (соответствующая часть):
class myVC: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {...
Это установка ячейки ...
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let tcell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "tbCell")
let textfield: UITextField = UITextField(frame:...
switch (indexPath.section) {
case 0: ...
case 1:
textfield.text = section2[indexPath.row]
tcell.addSubview(textfield)
textfield.delegate = self
return tcell
и этот метод протокола:
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
textField.resignFirstResponder()
print("method is called")
return true
}
Спасибо вы!
вы можете использовать метод делегата textfieldshouldReturn и писать в нем textfield.resignFirstRsponder и вернуть истинное –
Вы не выполнили какие-либо методы, которые будет отклонять клавиатуру, поэтому, конечно, ее не называют. Взгляните на http://stackoverflow.com/questions/5306240/iphone-dismiss-keyboard-when-touching-outside-of-uitextfield – Belle
@ Rajan: Спасибо, это работает! Однако я не понимаю разницы с textFieldShouldEndEditing (с resignFirstResponder). Очевидно, это то, что люди предлагают в большом количестве ответов здесь и должны иметь тот же результат. – Netzer