Как программно инициировать редактирование NSTextFieldCell (сделайте его firstResponder) - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть два NSTableView с. При двойном щелчке на tableview1 содержимое tableview1 будет помещено в tableview2. Я хотел бы отредактировать новую ячейку в tableview2. Попробовал следующий метод.

- (void)editColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex withEvent:(NSEvent *)theEvent select:(BOOL)flag

Это не делает tableview2 первым ответчиком. Курсор не находится в новой ячейке. Я хотел бы иметь курсор в новой ячейке и начать редактирование ячейки. Пожалуйста, дайте мне несколько советов для достижения этой цели. Заранее спасибо.

Как поместить курсор в ячейку NSTableView?

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Когда началось редактирование, fieldEditor входит в изображение, поэтому не может установить firstResponder.

Реализован делегат textDidEndEditing tableView.Это решило вопрос.

0 голосов
/ 03 апреля 2012

Если вы используете NSArrayController для хранения данных ваших таблиц, вы можете переопределить rearrangeObjects:

- (void)rearrangeObjects {
    [super rearrangeObjects];
    [tableView editColumn:0 row:[self selectionIndex] withEvent:nil select:YES];
}

Дополнительным преимуществом является то, что этот метод также, кажется, прокручивает таблицу донедавно вставленная строка.

...