【问题标题】:How to show a UIPicker on click of a text field in a particular table view cell swift?如何在单击特定表格视图单元格中的文本字段时快速显示 UIPicker?
【发布时间】:2020-04-11 06:01:00
【问题描述】:

我有一个带有自定义原型单元格的表格视图控制器。原型单元格左侧有一个文本字段(标题),右侧有另一个文本字段( )。

此表格视图显示一个人的各种详细信息,左侧为 标题,右侧为 Value。用户可以在此页面上编辑 3 个字段,如保单持有人、姓名和电话号码。这个表格视图有大约 15 行。

当用户想要编辑保单持有人并且当他点击保单持有人右侧的文本字段时,我想显示一个带有两个选项的 UIPikcer,例如 Self 和 Other。一旦用户选择其中任何一个,就必须将其输入到文本字段中。

如果用户想要编辑电话号码字段,我希望用户仅以特定格式输入,例如 +x (xxx) xxx-xxxx。

我该怎么做这些事情。

【问题讨论】:

标签: ios swift uitableview uitextfield uipickerview


【解决方案1】:

您有两种选择来实现这一点, 1)您可以将按钮和文本字段放在同一个单元格上,并相应地使用隐藏/显示功能。 2)在以下文本字段方法的另一个选项中

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;

添加这个

textField.inputView = _pickerView;

【讨论】:

    【解决方案2】:

    你好吗?

    所以您需要在点击UITextField 时显示UIPicker,好吗?

    第一步是实现UITextFielddelegate 和标签标识符以准确捕获您需要的内容

    类似这样的:

    class YourViewController: UIViewController, UITextFieldDelegate {
    .
    .
    .
    self.textField.delegate = self
    self.textField.tag = indexPath.row
    

    PS*:也许你应该在你的 cellForRow 上的 indexPath(或类似的)上设置委托和标签

    在这之后,实现这个方法:

    func textFieldDidBeginEditing(_ textField: UITextField) {
    // do this, not recommended
    if textField.tag == xx {
       self.textField.inputView = yourPicker
       }
    // the correct way is catch your cell indexPath at this point
    }
    
    

    我真的希望对你有所帮助,快乐的代码 =D

    【讨论】: