На мой взгляд, у контроллера есть 5 текстовых полей, 4 - первый ответчик с клавиатурой и один с UIPicker, все они помечены +1 (0,1,2 ...)Добавление кнопки «Пред.» И «Следующий» в представление Access моего UIPicker?
Как раз так бывает, что текстовое поле, которое становится первым ответчиком с Picker, - это номер 3, поэтому он застрял посередине. В моих других полях у меня есть мой код, так что кнопка возврата «Следующий» возвращает меня в следующее поле, но я не смог вытащить то же самое с помощью сборщика, код, который делает это:
-(BOOL) textFieldShouldReturn:(UITextField *) theTextField {
if (theTextField == self.textFieldE) {
[theTextField resignFirstResponder]; //This of course being the last text field
} else {
[(UITextField *)[theTextField.superview viewWithTag:theTextField.tag+1]
becomeFirstResponder];
}
return YES;
}
UIPickerView имеет прикрепленный к нему дополнительный вид с завершенной кнопкой, что фактически делает resignFirstResponder
, но мне нужно добавить предыдущую и следующую кнопку, чтобы сделать firstResponder либо -1.tag, либо + 1.tag, поскольку подборщика застрял в номер позиции 3.
Вот мой сборщика код:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if (textField == self.textOutlet) {
self.textOutlet.inputView = _thePicker;
self.thePicker.hidden = NO;
UIToolbar* toolbar = [[UIToolbar alloc] init];
toolbar.barStyle = UIBarStyleBlackTranslucent;
[toolbar sizeToFit];
//to make the done button aligned to the right
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone target:self
action:@selector(doneClicked:)];
[toolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, doneButton, nil]];
self.textOutlet.inputAccessoryView = toolbar;
}
}
и, конечно, действие кнопки «Готово»:
-(void)doneClicked:(id) sender
{
[_textOutlet resignFirstResponder]; //hides the pickerView
}
Спасибо за помощь заранее!
Ну, я дал коду попробовать, но сбои приложения при выборе текстового поля с подборщиком .. Я заменил 'theTextField' с именем текстового поля, которое имеет вход сборщика. Я получаю следующий журнал отладки: '2013-07-12 11: 34: 38.979 calcApp [1519: 907] - [UISegmentedControl view]: непризнанный селектор отправлен в экземпляр 0x1dd7bfa0 2013-07-12 11: 34: 38.981 calcApp [1519 : 907] *** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [UISegmentedControl view]: непризнанный селектор отправлен в экземпляр 0x1dd7bfa0' '@Vojtech Vrbka – vzm
У вас есть эта функция в UIViewController или в вашем пользовательском классе UITextField ? –