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 the
pickerView
是指隐藏它?时,如果是这样,您所要做的就是调用
[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