如何从swift 2.0中以编程方式创建的文本框中检索文本?

时间:2016-05-24 23:23:54

标签: ios swift swift2

我正在尝试从多个文本字段中获取文本,这些字段是按用户需要的方式添加的,通过按下按钮并将其添加到数组以在按下提交按钮时在下一个视图控制器上使用但是我无法弄清楚怎么做。这是我按下按钮时如何创建文本字段的代码。

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

    }

如果您需要我的其他任何代码,请询问。

2 个答案:

答案 0 :(得分:1)

不要在函数中声明你的textField。在ViewController类中声明它并在函数中编辑它。然后你可以参考:

textField.text

答案 1 :(得分:1)

您遇到的问题是范围界定问题。当你宣布

var textField: UITextField = UITextField()

这意味着此texfield仅在此函数中作用域

所以你有几个选择

1)将您的功能更改为:

func addNewTask() -> UITextField

并让它返回textField

2)使textField成为班级建构

var textfield: UITextField?
func addNewTask() {

// lots of code

self.textField = UITextField()
}

但是,在任何一种情况下,当您访问文本的值时,请参阅

.text属性

enter image description here

你可以通过以下方式做到这一点:

textField.text = "HELLO"