2015-03-19 3 views
2

Что такое хороший способ убрать эту клавиатуру, когда пользователь прикасается к ней? Я пробовал использовать метод прикосновения, но это не работает. Однако метод textfieldshouldreturn работает нормально. Я не могу думать о других способах этого. Может кто-то, пожалуйста, помогите мне здесь, я бы очень признателен за любую помощь. БлагодаряКак убрать клавиатуру iOS на вид таблицы

import UIKit 


var courseCatalog : [String] = Array<String>() 


class HomeViewController: UIViewController, UITextFieldDelegate , UITableViewDelegate{ 

    @IBOutlet var searchTextField: UITextField! 


    override func viewDidLoad() { 

     courseCatalog = ["Accounting", "Administration" , "American Studies" , "Anthropology" , "Arabic" , "Art" , "Aerospace Studies" , "American Sign Language" , "Biology" , "Child Development" , "Chemistry" , "Chinese" , "Criminal Justice", "Communication Studies" , "Computer Science", "Computer Engineering"] 

     super.viewDidLoad() 

     println(PFUser.currentUser()) 

     println("Home Tab View Controller") 

     searchTextField.delegate = self 
    } 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

     return courseCatalog.count 

    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell") 

     cell.textLabel?.text = courseCatalog[indexPath.row] 

     return cell 

    } 

    override func didReceiveMemoryWarning() { 

     super.didReceiveMemoryWarning() 

     // Dispose of any resources that can be recreated. 

    } 


    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 


     self.searchTextField.resignFirstResponder() 

    } 

    func textFieldShouldReturn(textField: UITextField!) -> Bool { 

     searchTextField.resignFirstResponder() 
     return true 

    } 





} 

enter image description here

+1

Возможный дубликат [скрыть клавиатуру для текстового поля в быстром языке программирования] (http://stackoverflow.com/questions/24908966/hide-keyboard-for-text-field-in-swift-programming-language) – Almo

ответ

3

Вы должны добавить кран жест распознаватель на ваш взгляд таблицы, которая закрывает клавиатуру, когда он выстрелил:

//Somewhere in setup 
UITapGestureRecognizer *viewTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeKeyboard)]; 
viewTap.cancelsTouchesInView = FALSE; 
[myTableView addGestureRecognizer:viewTap]; 

//Somewhere else in your class 
-(void)closeKeyboard { 

    [self.view endEditing:TRUE]; 
} 
+0

I добавлен распознаватель жестов кран, чтобы закрыть клавиатуру, но теперь пользователь не может использовать ни одно из содержимого табличного вида. –

+0

@MbusiHlatshwayo. Вы установили 'cancelsTouchesInView' в' FALSE'? – rebello95

2

Если фон является UIView, вы можете изменить его в UIControl в инспекторе идентификации и отправить его в действие, которое уходит в отставку первого ответчика.

Поскольку ваш фон является UITableView, вы должны добавить rightBarButtonItem в свой навигационный блок, например «Отменить» или «Готово», и отправить его методу, который уходит в отставку с первого ответчика *.

* Ваш первый ответчик поле пользователь печатает в

[textField resignFirstResponder]; 

Swift:.

textField.resignFirstResponder(); 
0

Вы можете попробовать этот код:

Это освобождает от должности клавиатуры, когда на клавиатуре нажата кнопка «возврат».

Надеюсь, это может вам помочь.

Смежные вопросы