Objective c 向UITextView添加UI选择器
当选择年龄时,我试图将Objective c 向UITextView添加UI选择器,objective-c,ios,uitextview,uipickerview,Objective C,Ios,Uitextview,Uipickerview,当选择年龄时,我试图将UIPicker添加到UITextView中。我找到了一个以前的和真正的实现代码,但我不能让它正常工作。当我构建程序时,会显示选择器,但其中没有值。你知道我做错了什么吗?另外,我在这里看到两个黄色错误,它们是“从不兼容的类型'ViewController*const\u strong'分配给'id'”: 多谢各位 @interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *a
UIPicker
添加到UITextView
中。我找到了一个以前的和真正的实现代码,但我不能让它正常工作。当我构建程序时,会显示选择器,但其中没有值。你知道我做错了什么吗?另外,我在这里看到两个黄色错误,它们是“从不兼容的类型'ViewController*const\u strong'分配给'id'”:
多谢各位
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *ageTextField;
@end
@implementation ViewController
@synthesize ageTextField;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIPickerView *pickerView =[[UIPickerView alloc]init];
pickerView.delegate = self;
pickerView.dataSource = self;
pickerView.showsSelectionIndicator=YES;
ageTextField.inputView=pickerView;
}
- (void)pickerView:(UIPickerView *)PickerView
didSelectRow:(NSInteger)row
inComponent:(NSInteger)component {
NSMutableArray *ageArray = [[NSMutableArray alloc]init];
[ageArray addObject:@"1"];
[ageArray addObject:@"2"];
[ageArray addObject:@"3"];
[ageArray addObject:@"4"];
ageTextField.text=[ageArray objectAtIndex:row];
}
@界面视图控制器()
@属性(强,非原子)UIPickerView*pickerView;
@属性(强、非原子)NSArray*pickerElements;
@结束
@实现视图控制器
-(无效)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
self.pickerView=[[UIPickerView alloc]init];
self.pickerView.delegate=self;
self.pickerView.dataSource=self;
self.pickerView.showselectionindicator=YES;
self.ageTextField.inputView=self.pickerView;
self.pickerElements=@[@“text1”、@“text2”、@“text3”、@“text4”];
[自选取视图:自选取视图
行:0
不完整项:0];
}
-(int)部件编号pickerView:(UIPickerView*)pickerView
{
返回1;
}
-(int)pickerView:(UIPickerView*)pickerView行数组件:(NSInteger)组件
{
返回[self.pickerElements count];
}
-(NSString*)pickerView:(UIPickerView*)pickerView标题箭头:(NSInteger)组件行:(NSInteger)组件
{
return[self.pickerElements objectAtIndex:row];
}
-(void)pickerView:(UIPickerView*)pickerView didSelectRow:(NSInteger)row不完整项:(NSInteger)组件
{
self.ageTextField.text=[self.pickerElements对象索引:行];
}
@结束
True。我把它弄得乱七八糟,忘了把它换回来。谢谢我将对此进行编辑。您是否正在实现方法pickerView:titleForRow:forComponent:
?否。是否为:ageTextField.text=[ageArray objectAtIndex:component]?是,选择后,您可以[pickerView removeFromSuperView]代码>请注意,如果再次需要pickerView,则必须将其添加回视图。其他选项是隐藏它或使用uiview动画代码在屏幕帧外设置动画。无论哪一个最适合您的需要。当您说Discover thepickerView
是指隐藏它?时,如果是这样,您所要做的就是调用[self.ageTextField resignFirstResponder]
,您将pickerView
指定为ageTextField
字段的“键盘”
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *ageTextField;
@end
@implementation ViewController
@synthesize ageTextField;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIPickerView *pickerView =[[UIPickerView alloc]init];
pickerView.delegate = self;
pickerView.dataSource = self;
pickerView.showsSelectionIndicator=YES;
ageTextField.inputView=pickerView;
}
- (void)pickerView:(UIPickerView *)PickerView
didSelectRow:(NSInteger)row
inComponent:(NSInteger)component {
NSMutableArray *ageArray = [[NSMutableArray alloc]init];
[ageArray addObject:@"1"];
[ageArray addObject:@"2"];
[ageArray addObject:@"3"];
[ageArray addObject:@"4"];
ageTextField.text=[ageArray objectAtIndex:row];
}
@interface ViewController () <UIPickerViewDataSource, UIPickerViewDelegate>
@property (strong, nonatomic) UIPickerView *pickerView;
@property (strong, nonatomic) NSArray *pickerElements;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.pickerView = [[UIPickerView alloc] init];
self.pickerView.delegate = self;
self.pickerView.dataSource = self;
self.pickerView.showsSelectionIndicator = YES;
self.ageTextField.inputView = self.pickerView;
self.pickerElements = @[@"text1", @"text2", @"text3", @"text4"];
[self pickerView:self.pickerView
didSelectRow:0
inComponent:0];
}
- (int)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (int)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [self.pickerElements count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [self.pickerElements objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
self.ageTextField.text = [self.pickerElements objectAtIndex:row];
}
@end