如何在xcode 9.2中的playground项目中使用swift从用户那里获得输入

时间:2018-02-28 10:59:34

标签: ios swift

这是ios11的错误,任何想法!?

来自主题:如何在xcode 8.2中的playground项目中使用swift从用户那里获得输入

import UIKit
import PlaygroundSupport 
    // new code user input

class V: UIViewController {
    var textField = UITextField(frame: CGRect(x: 20, y: 20, width: 200,      height: 24))
    override func viewDidLoad() {
        super.viewDidLoad()
        //view.addSubview(textField)
        textField.backgroundColor = .white
        textField.delegate = self
    }
}
extension V: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn         range: NSRange, replacementString string: String) -> Bool {
    // Do stuff here
     print("Please enter your name")
     var name = readLine()
    print("name: \(name!)")
    return true
    }
}
 let v = V()
v.view.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
PlaygroundPage.current.liveView = v.view
PlaygroundPage.current.needsIndefiniteExecution = true

1 个答案:

答案 0 :(得分:0)

您无法在快速游乐场中使用readline()。为此,您必须使用命令行工具。

此外,您的代码仅显示黑色;)..我修改了它,因此您可以看到文本字段:

import UIKit
import PlaygroundSupport
// new code user input

class V: UIViewController {
    var textField: UITextField!
    override func loadView() {
        //super.viewDidLoad()
        //view.addSubview(textField)

        let view = UIView()
        view.backgroundColor = .white

        textField = UITextField()
        textField.backgroundColor = .white
        textField.delegate = self
        textField.borderStyle = .roundedRect

        view.addSubview(textField)

        textField.text = "Hello world!"

        // Layout

        textField.translatesAutoresizingMaskIntoConstraints = false
        let margins = view.layoutMarginsGuide
        NSLayoutConstraint.activate([
            textField.topAnchor.constraint(equalTo: margins.topAnchor, constant: 20),
            textField.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
            textField.trailingAnchor.constraint(equalTo: margins.trailingAnchor),
        ])

        self.view = view
    }
}
extension V: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn         range: NSRange, replacementString string: String) -> Bool {
        // Do stuff here
        print("Please enter your name")
        var name = readLine()
        print("name: \(name!)")
        return true
    }
}
let v = V()
//v.view.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
PlaygroundPage.current.liveView = v
//PlaygroundPage.current.needsIndefiniteExecution = true

可在此处找到一个更好,更完整的示例:https://www.ralfebert.de/ios-examples/uikit/uicatalog-playground/UITextField/