在Swift 3中制作一个下拉列表

时间:2017-07-18 21:05:40

标签: swift

我试图制作下拉列表,直到用户点击文本字段才能看到选择器视图。然后,当用户从pickerView中进行选择后,选择器视图消失。目前,当我点击文本字段时,选择器视图根本不显示。

import UIKit

class ViewController: UIViewController, UIPickerViewDataSource,     UIPickerViewDelegate {
    @IBOutlet weak var textBox: UITextField!
    @IBOutlet weak var pickerView: UIPickerView!

    var choices = ["SortBy:", "Date(ascending)", "Date(descending)","Calories Burned(descending)","Duration(descending)"]

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        self.view.endEditing(true)
        return choices[row]
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return choices.count
    }

    fun pickerView(_ pickerView: UIPickerView, didSelectRow row: Int,   inComponent component: Int) {
        self.textBox.text = self.choices[row]
        self.pickerView.isHidden = true

        print("hello")
    }

    func textFieldDidBeginEditing(TextField:  UITextField){
        if TextField == self.textBox {
            self.pickerView.isHidden = false
            TextField.endEditing(true)
        }
    }

    override func viewDidLoad() {
        self.pickerView.isHidden = true
        super.viewDidLoad()
    }
}

1 个答案:

答案 0 :(得分:0)

试试这个:

override func viewDidLoad() {
        self.pickerView.isHidden = true
        super.viewDidLoad()
        self.textBox.delegate = self
        self.pickerView.delegate = self 
    }