我从here选择了一个选择器视图。它工作得很好。当app运行时,它会显示出来。但是,我希望在点击文本字段时显示它,之前我希望隐藏它。 Country picker是UIPickerView的子类,放在nib文件中。请帮忙。
答案 0 :(得分:1)
您应该按照以下步骤操作:
1. 在您的所有者类中创建IBOutlet属性(不要忘记在头文件中添加UITextFieldDelegate):
@property (weak, nonatomic) IBOutlet CountryPicker *myPickerView;
@property (weak, nonatomic) IBOutlet UITextField *myTextField;
2。将您的IBOutlets与您的PickerView,xib中的TextField连接。并在您的viewDidLoad
方法中添加:
self.myTextField.delegate = self;
从现在开始,您应该实现UITextField委托方法。 UITextField Protocol Reference
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
self.myPickerView.hidden = NO;
}
此方法通知委托指定的文本字段刚成为第一个响应者。您可以使用此方法更新委托的状态信息。例如,您可以使用此方法显示编辑时应该可见的叠加视图。
- (void)textFieldDidEndEditing:(UITextField *)textField
{
self.myPickerView.hidden = YES;
}
在文本字段重新启动其第一个响应者状态后调用此方法。您可以使用此方法更新委托的状态信息。例如,您可以使用此方法隐藏仅在编辑时才可见的叠加视图。
EDIT1: GitHub Sample