#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 по умолчанию