当前位置: 首页 > 面试题库 >

显示UIPickerView文本字段处于选中状态,选中后隐藏

杨骁
2023-03-14
问题内容

我正在尝试创建一个文本框,当选中它时,UIPickerView将打开,并提供可供选择的选项。选择后,UIPickerView将隐藏,并且所选项目将显示在文本框中。我尝试了在网上找到的不同代码,但是无法正常工作。如果有人可以为此建议完整的代码,或者告诉我我在代码中做错了什么,那真是太棒了。非常感谢。

这是我的代码:

@IBOutlet var textfieldBizCat: UITextField!
@IBOutlet var pickerBizCat: UIPickerView! = UIPickerView()

var bizCat = ["Cat One", "Cat Two", "Cat Three"]


override func viewDidLoad() {
    super.viewDidLoad()

    var bizCatCount = bizCat.count

    self.textfieldBizCat.inputView = pickerView

}

// returns the number of 'columns' to display.
func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int{
    return 1
}

// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int{
    return bizCat.count
}

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

func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
    textfieldBizCat.text = "\(bizCat[row])"

}

问题答案:

如果我了解您的问题,那么您需要:

  1. 具有UITextField该显示文本选择的
  2. 用户单击时打开选择器 UITextField
  3. 选择一个项目(在选择器中)时,关闭选择器,然后在 UITextField

这是完整的代码来管理它,您只需链接您的代理UITextField

@IBOutlet var textfieldBizCat: UITextField!
@IBOutlet var pickerBizCat: UIPickerView! = UIPickerView()

var bizCat = ["Cat One", "Cat Two", "Cat Three"]


override func viewDidLoad() {
    super.viewDidLoad()
    pickerBizCat.hidden = true;
    textfieldBizCat.text = bizCat[0]
}

// returns the number of 'columns' to display.
func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int{
    return 1
}

// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int{
    return bizCat.count
}

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

func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
    textfieldBizCat.text = bizCat[row]
    pickerBizCat.hidden = true;
}

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

我对您的代码所做的更改:

  • 用于UITextFieldDelegate显示选择器中时UITextField被选择
  • 选择项目后隐藏选择器,然后设置 UITextField
  • 在选择UITextField任何项目时将选择器的第一行设置为


 类似资料:
  • 问题内容: 我试图根据我选择的字段之一的值显示和隐藏一些表单字段。我希望使用数组来保存每个选择值应显示的内容和不应该显示的内容,以免将我从庞大的switch语句中删除,但无法弄清楚该如何做。 我正在使用PHP和jQuery。任何帮助都会很棒。 问题答案: 尝试这样的事情: 然后在jQuery中:

  • 在设置页面中,我有一个复选框被选中作为默认值。如果用户不选中它,那么应用程序中的所有图像都将被隐藏,用户将无法看到整个应用程序中的任何图像。我想我需要控制复选框的状态(选中或没有选中),在单击/按下复选框时更改该值,将该新值传递给所有应用程序(如何传递?),然后根据该值我可以决定是否显示图像。 所以基本上,我的问题是访问状态值,然后决定显示什么。下面是我在设置页面中使用的代码: 设置页: PS:我

  • 问题内容: 这是我的代码。为什么不起作用? 问题答案: 您正在加载DOM之前运行代码。 尝试这个: 现场示例:

  • 问题内容: 我有一个与此非常相似的JTable。 http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting 我已经设法在其上设置了普通过滤器(搜索功能),并且效果很好。我想要一个按钮,该按钮将立即仅显示选中素食的行。 好吧,现在感谢@peeskillet和@HovercraftFullOfEels提供的

  • 我有两个<代码> 当用户从第一个选择框中选择一个值时,我希望第二个选择框只显示连接的值。 我的代码: 因此,当用户从第一个选择框M中选择“test1”时,他在第二个选择框上只会看到“test2”、“test3”和“test4”;第一个框中的“test2”将在第二个框中显示“test6”、“test7”和“test8”。 如何使用JavaScript解决此问题?

  • 排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });