【问题标题】:How can I store user input in a UIPickerView?如何将用户输入存储在 UIPickerView 中?
【发布时间】:2011-09-13 16:55:54
【问题描述】:

我的应用中目前有一个UIPickerView。有一个文本框,用户将在其中输入一个字符串,我希望将该字符串保存在 UIPickerView 中,以便他们可以返回并点击它而不是再次输入它。

我现在有一个数组,其中包含一些文本,但我想知道程序运行后如何添加它。

【问题讨论】:

    标签: objective-c xcode ipad ios4


    【解决方案1】:

    假设 pickerArray 是您的数组名称,其数据显示在 pickerView 中。

    你要做的是:-

     (void)textFieldDidEndEditing:(UITextField *)textField
    {
    [pickerArray addObject:textField.text];
    [*yourPickerViewNmae* reloadAllCompononents];
    }
    

    希望对你有所帮助。快乐编码:)

    【讨论】:

    • 谢谢!这帮助很大!
    【解决方案2】:

    我已经完成并检查了。它工作正常。

    以下是代码。

    #import "pickerViewController.h"
    
    @implementation pickerViewController
    @synthesize textfield,picker,pickerarray,btn;
    - (void)dealloc
    {
        [super dealloc];
        [picker release];
        [textfield release];
        [pickerarray release];
        [btn release];
    }
    
    - (void)didReceiveMemoryWarning
    {
        // Releases the view if it doesn't have a superview.
        [super didReceiveMemoryWarning];
    
        // Release any cached data, images, etc that aren't in use.
    }
    
    #pragma mark - View lifecycle
    
    
    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        textfield.delegate=self;
        picker.delegate=self;
        picker.dataSource=self;
        picker.showsSelectionIndicator=YES;
        pickerarray=[[NSMutableArray alloc]init];
    
    }
    
    
    -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {
        return 1;
    }
    -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
    {
        return [pickerarray count];
    }
    
    -(void)textFieldDidEndEditing:(UITextField *)textField
    {
        textfield.delegate=self;
        [pickerarray addObject:textField.text];
    
        [picker reloadAllComponents];
    
        NSLog(@"%@",pickerarray);
    }
    
    -(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
    {
    
    
        return [pickerarray objectAtIndex:row];
    
    }
    -(IBAction)killkeyBoard:(id)sender
    {
        [textfield resignFirstResponder];
    }
    

    【讨论】:

      【解决方案3】:

      1.使用 UITextField 的委托函数,在委托函数中添加所需数组中的文本(使用 NSMutable 数组)。

      【讨论】:

        【解决方案4】:

        UIPickerDatasource 可以显示要显示的项目数组,在您的情况下,您的数据是动态的,因为您需要输入文本,然后您希望将其输入到您的选择器控件中。

        您需要有一个NSMutableArray,您可以在其中动态添加和删除对象。添加后可以调用picker的reloadAllComponents方法重新加载数据。

        【讨论】:

          猜你喜欢
          • 2014-06-04
          • 1970-01-01
          • 2019-09-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-12
          • 1970-01-01
          • 2016-10-22
          相关资源
          最近更新 更多