ios - 放置在 nib 文件中时如何隐藏 UIPickerView

标签 ios xcode uipickerview

我从here中选择一个选择器 View .它工作得很好。当应用程序运行时,它会出现。但是,我希望在点击文本字段时显示此内容,并且在此之前我希望将其隐藏。国家/地区选择器是 UIPickerView 的子类,位于 nib 文件内。请帮忙。

最佳答案

您应该遵循以下步骤:

    1. 在您的所有者类中创建 IBOutlet 属性(不要忘记在头文件中添加 UITextFieldDelegate):

@property (weak, nonatomic) IBOutlet CountryPicker *myPickerView;
@property (weak, nonatomic) IBOutlet UITextField *myTextField;

    2. 将 IBOutlets 与 xib 中的 PickerView、TextField 连接起来。并在您的 viewDidLoad 方法中添加:

self.myTextField.delegate = self;

从现在开始,您应该实现 UITextField 委托(delegate)方法。 UITextField Protocol Reference

    - (void)textFieldDidBeginEditing:(UITextField *)textField
    {
      self.myPickerView.hidden = NO;
    }

此方法通知代理指定的文本字段刚刚成为第一响应者。您可以使用此方法来更新委托(delegate)的状态信息。例如,您可以使用此方法显示在编辑时应该可见的叠加 View 。

    - (void)textFieldDidEndEditing:(UITextField *)textField
    {
      self.myPickerView.hidden = YES;
    }

此方法在文本字段退出其第一响应者状态后调用。您可以使用此方法更新委托(delegate)的状态信息。例如,您可以使用此方法来隐藏只应在编辑时可见的叠加 View 。

编辑1: GitHub Sample

关于ios - 放置在 nib 文件中时如何隐藏 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22896443/

相关文章:

ios - 比较 [UIColor colorWithPatternImage :] 的相等性

ios - 刷新配置文件时出现 XCode "Too few items in teams"错误

ios - 用于打开其他应用程序的 canOpenURL - 不适用于模拟器

iphone - 如何在使用 UIPickerView 时禁用 View

swift - 从另一个 viewController 访问信息

ios - 'LSApplicationQueriesSchemes 下的 Info.plist 中缺少 fbauth2,并且是 iOS 9.0 所必需的'

ios - 如何在 iOS 7/8 的应用程序启动时获取初始设备方向?

ios - Xcode 的build设置中的 "-weak_framework"是什么意思?

iphone - 如何在 iPhone Xcode 中自定义 UIPickerView 减少其尺寸?

iphone - 使用 google 访问 token 进行 Xmpp gtalk 身份验证