У меня есть одна проблема с "глупым" кодом, но я не вижу, как это исправить.
Я сделал Toobar для клавиатуры с сегментом с кнопками «Предыдущий» и «Следующий», предыдущая кнопка работает хорошо вместо кнопки «Далее». Всегда переходить на последнее поле моего списка.
Я думаю, что ошибка в segmentPrevNext
, но я ее не вижу; _;
@synthesize field1, field2, field3, field4, field5;
// utility
@synthesize fields, keyboardToolbar, segmentedPreviousNext;
- (void)viewDidLoad
{
[super viewDidLoad];
// list of fields
self.fields = [[NSArray alloc] initWithObjects:field1, field2, field3, field4, field5, nil];
if(keyboardToolbar == nil){
// more stuff
.....
[self.segmentedPreviousNext addTarget:self action:@selector(segmentPrevNext:) forControlEvents:UIControlEventValueChanged];
// more stuff
.....
}
}
- (void)segmentPrevNext:(id)sender
{
NSLog(@"segmentAction: %d", [sender selectedSegmentIndex]);
for (int i = 0; i < self.fields.count; i++) {
if([[fields objectAtIndex:i] isFirstResponder])
switch ([sender selectedSegmentIndex]) {
case 0:
if( i > 0 ){
[[fields objectAtIndex:i-1] becomeFirstResponder];
}
break;
case 1:
if( i < self.fields.count - 1 ){
[[fields objectAtIndex:i+1] becomeFirstResponder];
}
break;
}
}
}