У меня есть NSTableView. При редактировании, если я нажимаю tab, он автоматически перебрасывает меня на следующий столбец. Это фантастика, но когда я редактирую поле в последнем столбце и нажимаю tab, я бы хотел, чтобы фокус переходил на первый столбец NEXT-строки.
Любые предложения?
Спасибо Майклу за исходный код, он был очень близок к тому, что получилось в итоге! Вот окончательный код, который я использовал, надеюсь, он будет полезен кому-то еще:
- (void) textDidEndEditing: (NSNotification *) notification {
NSInteger editedColumn = [self editedColumn];
NSInteger editedRow = [self editedRow];
NSInteger lastColumn = [[self tableColumns] count] - 1;
NSDictionary *userInfo = [notification userInfo];
int textMovement = [[userInfo valueForKey:@"NSTextMovement"] intValue];
[super textDidEndEditing: notification];
if ( (editedColumn == lastColumn)
&& (textMovement == NSTabTextMovement)
&& editedRow < ([self numberOfRows] - 1)
)
{
// the tab key was hit while in the last column,
// so go to the left most cell in the next row
[self selectRowIndexes:[NSIndexSet indexSetWithIndex:(editedRow+1)] byExtendingSelection:NO];
[self editColumn: 0 row: (editedRow + 1) withEvent: nil select: YES];
}
}