IOS Keyboard UItoobar следующие кнопки всегда переходят к последнему полю - PullRequest
0 голосов
/ 14 марта 2012

У меня есть одна проблема с "глупым" кодом, но я не вижу, как это исправить.

Я сделал 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;
            }

    }
}
...