Как я могу сохранить пользовательский ввод в UIPickerView? - PullRequest
1 голос
/ 13 июня 2011

У меня в приложении UIPickerView. Существует текстовое поле, в которое пользователь вводит строку, и я хочу, чтобы эта строка была сохранена в UIPickerView, чтобы они могли вернуться назад и нажать на нее, а не набирать ее снова.

Теперь у меня есть массив, в котором есть текст, но я хочу знать, как добавить его после запуска программы.

Ответы [ 4 ]

2 голосов
/ 13 июня 2011

Я сделал это и проверил. работает нормально.

Ниже приведен код.

#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];
}
2 голосов
/ 13 июня 2011

Предположим, что pickerArray - это имя вашего массива, данные которого отображаются в pickerView.

Вам нужно сделать следующее: -

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

Надеюсь, это поможет вам. Счастливое кодирование :)

1 голос
/ 13 июня 2011

1.Используйте функцию делегата UITextField, в функцию делегата добавьте текст в нужный массив (используйте массив NSMutable).

0 голосов
/ 13 июня 2011

UIPickerDatasource может принимать массив элементов для отображения, в вашем случае ваши данные являются динамическими, так как вам нужно ввести текст, а затем вы хотите, чтобы они были введены в элемент управления выбора.

Вынеобходимо иметь NSMutableArray, в котором вы можете добавлять и удалять объекты динамически.Затем после добавления вы можете вызвать reloadAllComponents метод вашего средства выбора для перезагрузки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...