首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:点击UITextField时如何显示UIPickerView

Swift:点击UITextField时如何显示UIPickerView
EN

Stack Overflow用户
提问于 2015-09-15 00:38:45
回答 1查看 1.6K关注 0票数 1

在我的iOS应用程序中,有一个表格,其中的一些单元格包含一个UITextField,我希望当点击该UITextField时,它的UIPiCkerView将被选中,并且在选择之后,UIPickerView应该会消失。在this教程之后,我编写了下面的类来表示一个带有选择器视图的单元格:

代码语言:javascript
复制
import Foundation
import UIKit

class PickerCell: UITableViewCell, UIPickerViewDataSource,UIPickerViewDelegate, UITextFieldDelegate {
@IBOutlet weak var label : UILabel!
@IBOutlet var myPicker: UIPickerView! = UIPickerView()
@IBOutlet weak var selectedData: UITextField!

var pickerData:[String]!

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

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

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
    return pickerData[row]
}

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    self.selectedData.text = self.pickerData[row]
    self.myPicker.hidden = true;
}


func configurePickerCell(labelText:String, enabled:Bool, defaultValueIndex:Int) {
    self.label.text = labelText

    var labelFrame:CGRect = self.label.frame
    labelFrame.size.height = Settings.labelHeight
    self.label.frame = labelFrame

    self.myPicker.delegate = self
    self.myPicker.dataSource = self
    self.selectedData.delegate = self

    self.setEditable(enabled)

}

func setEditable(canEdit:Bool) {

    if (canEdit) {
        self.selectedData.userInteractionEnabled = true
        self.label.highlighted = false
        self.selectedData.layer.borderColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 1).CGColor

    }
    else {
        self.selectedData.userInteractionEnabled = false
        self.label.highlighted = true
        self.selectedData.layer.borderColor = UIColor(red: 176/255, green: 176/255, blue: 176/255, alpha: 1).CGColor
    }

}

func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
    self.myPicker.hidden = false
    return false
}


}

但我想我遗漏了一些东西,因为当我点击UITextView时,UIPickerView不会出现,但光标会显示在它里面。我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-05-16 06:17:26

那么,首先,您的数据和uiviewController在哪里?你的pickerView是正确的,但是你在哪里应用呢?

试着这样开始你的类ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,CLLocationManagerDelegate

而不是“类PickerCell: UITableViewCell”您使用"tableViewCell“来创建pickerView这不是一个好主意

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32569718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档