我试图从多个文本字段中获取文本,这些文本字段是在用户需要时通过按下按钮以编程方式添加的,并将其添加到数组中,以便在按下提交按钮时在下一个 View Controller 上使用,但我无法弄清楚怎么做。这是我在按下按钮时如何创建文本字段的代码。
var numberOfTasks = 1
var i = 0
@IBAction func addTaskButton(sender: AnyObject)
{
numberOfTasks = numberOfTasks + 1
addNewTask()
}
override func viewDidLoad() {
scrollViewTAR.contentSize.height = 50
addNewTask()
}
func addNewTask(){
var yPosition:CGFloat = 10
var xPosition:CGFloat = 0
var textWidth:CGFloat = scrollViewTAR.frame.width-20
for (i=0; i<numberOfTasks; i = i + 1){
var textField: UITextField = UITextField()
textField.frame = CGRectMake(xPosition, yPosition, textWidth, 30)
textField.placeholder = "Enter Task \(i + 1) Here"
textField.font = UIFont.systemFontOfSize(15)
textField.borderStyle = UITextBorderStyle.RoundedRect
textField.autocorrectionType = UITextAutocorrectionType.No
textField.keyboardType = UIKeyboardType.Default
textField.returnKeyType = UIReturnKeyType.Done
textField.clearButtonMode = UITextFieldViewMode.WhileEditing;
scrollViewTAR.addSubview(textField)
scrollViewTAR.frame.size.width = view.frame.width-20
scrollViewTAR.center = view.center
scrollViewTAR.contentSize.height += 20
yPosition += 35
}
如果您需要我的任何其他代码,请询问。
最佳答案
您遇到的问题是范围界定问题。当你声明时
var textField: UITextField = UITextField()
这意味着该文本域的作用域仅在此函数内
所以你有几个选择
1)将您的功能更改为:
func addNewTask() -> UITextField
并让它返回textField
2) 使 textField
成为类级别构造
var textfield: UITextField?
func addNewTask() {
// lots of code
self.textField = UITextField()
}
但是,无论哪种情况,当您访问文本的值时,您都会引用
.text
属性
您可以简单地通过以下方式执行此操作:
textField.text = "HELLO"
关于ios - 如何从 swift 2.0 以编程方式创建的文本框中检索文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37425476/