swift: в UITextField нет элемента с именем text

#ios #uitextfield #swift

#iOS #uitextfield #swift

Вопрос:

У меня @IBAction при редактировании события началось

 @IBAction func saveCurrentTextField(sender: UITextField) {

    let myTextField : UITextField = sender as UITextField
    myClass.saveMyTextField(myTextField)

}
  

А затем у меня есть кнопка с @IBAction при касании события внутри

 @IBAction func saveValueOfThoseTextField(sender: UIButton) {

    println("Those textField = (myClass.thoseTextField)")
    let text : String = myClass.thoseTextField.text

}
  

println возвращает:

 UITextField: 0xb289b80; frame = (165 15; 40 30); text = '15'; clipsToBounds = YES; opaque = NO; autoresize = RM BM; gestureRecognizers = NSArray: 0xb28f730>; layer = CALayer: 0xb289cc0
  

Но в строке let text : String = myClass.thoseTextField.text я получаю сообщение об ошибке: UITextField does not have a member named text

Комментарии:

1. как вы объявляете это свойство textfield/

Ответ №1:

Попробуйте:

 let text : String = myClass.thoseTextField!.text
  

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

Комментарии:

1. Свойства, отмеченные знаком @IBOutlet , являются неявно развернутыми опциями, поэтому разворачивание с ! помощью не должно быть необходимым.

2. Это зависит от того, как он его объявил. Если бы он объявил его необязательным, ему пришлось бы его развернуть. Если он этого не сделал, у него должно быть свойство text, которого у него, похоже, нет.

3. Исходным текстовым полем является текстовое поле в пользовательской ячейке: @IBOutlet var TextField: UITextField

4. А в class: var thoseTextField : UITextField? = ноль

5. Это хорошая рецензия на эту проблему, а также информация из документации Apple о том, что это необязательно и должно быть развернуто. В документации вы можете видеть, что он объявлен как необязательный Declaration SWIFT var text: String?

Ответ №2:

@IBOutlet var txt_RegNumber: [UITextField]!

возможно, у вас есть такой вариант, просто удалите [], потому что принимает array по умолчанию