我正在寻找一种将单个 UIPickerview 用于两个不同文本字段的方法。我希望在选择每个文本字段时弹出选择器视图。用户选择他们的项目后,该项目将填充特定的文本字段。选择器必须根据所选的文本字段进行填充。
我读过这篇文章:
如何在一个视图中将一个 UIPickerView 用于多个文本字段?
还有这个:
如何使用 UIPickerView 在一个视图中填充不同的文本字段?
这:
文本字段编辑中 UIPickerView 的多个来源
但是,没有一个给出完整的解决方案。
我是 Xcode 的新手,所以我想要一个包含设置情节提要的步骤的解决方案。
我很感激任何帮助,因为我已经研究了几周。
编辑:这是我的代码:
.h:
#import <UIKit/UIKit.h>
@interface klViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> {
IBOutlet UITextField *textField1;
IBOutlet UITextField *textField2;
NSMutableArray *pickerArray1;
NSMutableArray *pickerArray2;
UIPickerView *pickerView;
}
@property(nonatomic,retain) IBOutlet UITextField *textField1;
@property(nonatomic,retain) IBOutlet UITextField *textField2;
@property(nonatomic,retain) IBOutlet UIPickerView *pickerView;
@end
.m:
#import "klViewController.h"
@interface klViewController ()
@end
@implementation klViewController
@synthesize pickerView;
@synthesize textField1;
@synthesize textField2;
int variabla;
-(void)textFieldDidBeginEditing:(UITextField *)textField{
[pickerView setHidden:YES];
if (textField1.editing == YES) {
[textField1 resignFirstResponder];
[pickerView setHidden:NO];
variabla = 1;
}else if (textField2.editing == YES) {
[textField2 resignFirstResponder];
[pickerView setHidden:NO];
variabla = 2;
}
NSLog(@"variabla %d",variabla);
[pickerView reloadAllComponents];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
if (variabla == 1) {
return [pickerArray1 count];
}else if (variabla == 2) {
return [pickerArray2 count];
}else {
return 0;
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
if (variabla == 1) {
return [pickerArray1 objectAtIndex:row];
}else if (variabla == 2) {
return [pickerArray2 objectAtIndex:row];
}else {
return 0;
}
}
- (void)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
[pickerView setHidden:YES];
pickerArray1 = [[NSMutableArray alloc] initWithObjects:@"0", @"1", @"2", nil];
pickerArray2 = [[NSMutableArray alloc] initWithObjects:@"3", @"4", @"5", nil];
}
@end
这是我的故事板的屏幕截图:
状态更新:
当我运行程序时:
1)pickerview 是隐藏的。
2)当我选择一个文本字段时,选择器视图会出现并根据所选的文本字段正确填充。
问题:
1) 在文本字段外单击时选择器不会消失。
2)选择选择器中的行时不会填充文本字段。
希望这能提供更多的见解。