У меня есть NSTableView. Во время редактирования, если я нажму вкладку, я автоматически перескочу к следующему столбцу. Это замечательно, но когда я редактирую поле в последнем столбце и нажимаю вкладку, я хочу, чтобы фокус перешел к первому столбцу СЛЕДУЮЩЕЙ строки.
Какие-либо предложения?
Спасибо Майклу за начальный код, он был очень близок к тому, что в итоге заработало! Вот окончательный код, который я использовал, надеюсь, он будет полезен кому-то еще:
- (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];
}
}