У меня есть UIPickerView
, который возвращает NSArray
с 4 strings
. Когда пользователь прокручивает UIPickerView
, обновляется UITextField
с выбранной строкой. Я хотел бы вернуть первый символ каждого string
в NSArray
и обновить UITextField
с этим символом.Возврат первого символа строки в NSArray для UIPickerView didSelectRow
Как вы можете видеть из моего кода, я попытался достичь этой функциональности, используя self.noiseLevelArray = [noiseArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
, который я нашел в нескольких разных вопросах переполнения стека.
Вот код для сборщика:
// Noise picker
self.noisePicker = [[UIPickerView alloc]init];
[noisePicker setDataSource:self];
[noisePicker setDelegate:self];
self.noiseArray = [[NSArray alloc]initWithObjects:@"4: Extreme Noise (Impossible)", @"3: Very Noisy (Loud Shouting)", @"2: Noisy (Shouting)", @"1: Not Noisy (Normally)", nil];
//self.noiseLevelArray = [noiseArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
// Call noisePicker method
[self noisePickerTextField];
Вот код для моего подборщика:
// Picker components
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [noiseArray count];
//return [noiseLevelArray count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [noiseArray objectAtIndex:row];
//return [noiseLevelArray objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSString *noiseString = [[NSString alloc]initWithFormat:@"%@", [noiseArray objectAtIndex:row]];
//NSString *noiseString = [noiseLevelArray objectAtIndex:0];
if ([self.empNoise1 isFirstResponder]) {
self.empNoise1.text = noiseString;
}
else if ([self.empNoise2 isFirstResponder]) {
self.empNoise2.text = noiseString;
}
...
Как вы можете видеть, UITextField
обновляется с полной string
в зависимости от того, строка выбран в UIPickerView
. Я бы хотел, чтобы он по-прежнему отображал полный string
, но обновлял UITextField
только с первым символом (в данном случае 1, 2, 3, or 4
). Любая помощь высоко ценится!
Это именно то, что я ищу, спасибо большое! – rosshump