sil*_*sam 19 objective-c uipickerview uitextfield ios
这是我到目前为止所做的截图:

所以我要做的就是当你选择"选择一个名字"Textfield我需要一个Picker来显示,输入@"Jack".
Tom*_*Tom 67
从iOS 3.2开始,UITextField支持inputView属性分配自定义视图以用作键盘,这提供了一种显示方式UIPickerView:
您可以使用该inputView属性UITextField,可能与该inputAccessoryView属性结合使用.您将自己分配pickerView给该inputView属性,并且为了解除选择器,将inputAccessoryView属性的完成按钮分配给该属性.
UIPickerView *myPickerView = [[UIPickerView alloc] init];
//myPickerView configuration here...
myTextField.inputView = myPickerView;
Run Code Online (Sandbox Code Playgroud)
像那样.由于您UIPickerView没有返回按钮,因此我不建议您直接关闭视图,这就是为什么我建议使用该inputAccessoryView属性来显示带有完成按钮的工具栏(该栏仅用于美观,您可能只是使用一个UIButton对象):
UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:
CGRectMake(0,0, 320, 44)]; //should code with variables to support view resizing
UIBarButtonItem *doneButton =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self action:@selector(inputAccessoryViewDidFinish)];
//using default text field delegate method here, here you could call
//myTextField.resignFirstResponder to dismiss the views
[myToolbar setItems:[NSArray arrayWithObject: doneButton] animated:NO];
myTextField.inputAccessoryView = myToolbar;
Run Code Online (Sandbox Code Playgroud)
the*_*ign 14
我使用它,发现这比添加子视图和动画更清晰 UIPicker
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
responder = textField;
if ([textField isEqual:self.txtBirthday]) {
UIDatePicker *datepicker = [[UIDatePicker alloc] initWithFrame:CGRectZero];
[datepicker setDatePickerMode:UIDatePickerModeDate];
textField.inputView = datepicker;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
它会为你工作..我已经编辑了它。为此你必须为文本字段设置委托。并在 NIb 文件中创建 UIPIckrView。
- (BOOL) textFieldShouldBeginEditing:(UITextView *)textView
{
pickrView.frame = CGRectMake(0, 500, pickrView.frame.size.width, pickrView.frame.size.height);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.50];
[UIView setAnimationDelegate:self];
pickrView.frame = CGRectMake(0, 200, pickrView.frame.size.width, pickrView.frame.size.height);
[self.view addSubview:pickrView];
[UIView commitAnimations];
return NO;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45256 次 |
| 最近记录: |