2014-12-10 2 views
0

У меня есть UIPageViewController, настроенный на 4 страницы, каждый с другим названием. У меня также есть UITextField в pageContentViewController, который я хотел бы скрыть, основываясь на том, что такое заголовок. У меня есть это:Swift hide UITextField

class pageContentViewController: UIViewController, UITextFieldDelegate { 

    @IBOutlet var titleLabel: UILabel! 
    @IBOutlet var textEntry: UITextField! 

    var pageIndex: Int = 0 
    var titleText = "default" 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    textEntry.delegate = self 
    self.textEntry = UITextField() 
    self.titleLabel.text = self.titleText 

    if self.titleText != "Enter Name" { 
    self.textEntry.hidden = true 
    } 
} 

Текст заголовка находится в другом месте, и наиболее определенно показывает, как должно, но текстовое поле не уходит. Я попытался поставить оператор if в том же месте, где установлен заголовок titleText, но он тоже не работает.

ответ

0

У меня проблема с установкой делегата.

Пожалуйста, установите TextField делегат на ваш ViewController как этого

class ViewController: UIViewController,UITextFieldDelegate { 

, а затем создать IBOutlet для вашего текстового поля, как этого

@IBOutlet var txtTest : UITextField = nil 

убедитесь, что он подключен к текстовому полю на вашем просмотр в раскадровке.

наконец установить его делегат с помощью

txtTest.delegate=self 

Мы почти закончили. Теперь поместите эту функцию делегата в ваш класс.

func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore. 
    { 
     textField.resignFirstResponder() 
     return true; 
    } 

Надеюсь, он решит вашу проблему.

+0

У меня все настроено так, как у вас есть там, за исключением того, что для переменной IBOutlet значение равно нулю, и я не могу этого сделать, не введя целый ряд ошибок. – lunadiviner

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