NSPopUpButtonCell внутри пользовательского NSCell не меняет выбор, когда элемент выбирается из меню

У меня есть NSPopUpButtonCell внутри пользовательской NSCell, и я использую

- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView

создать всплывающее меню при нажатии.

Я также переопределил copyWithZone: в своей пользовательской ячейке скопировать переменную экземпляра popUpCell, чтобы каждая строка в моем табличном представлении имела собственную всплывающую ячейку.

Моя проблема в том, что, хотя меню всплывает просто отлично, и вы можете выбрать элемент из меню, когда элемент выбран, ячейка не меняет свой выбранный элемент, чтобы соответствовать выбранному элементу из меню.

Однако, если я закомментирую строку в копии с зоной, которая копирует ячейку, то она будет вести себя должным образом, пока идет выбор (изменяясь, чтобы соответствовать выбранному элементу, хотя в каждой отдельной строке будет тот же выбранный элемент).

Кто-нибудь знает, почему это так, или, более конкретно, как я могу это исправить?

2 ответа

Я бы предложил не копировать ячейку и вместо этого использовать:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

... метод делегата для установки ячейки с правильными данными перед каждой строкой.

Вы пытались использовать

–trackMouse:inRect:ofView:untilMouseUp: 

вместо

startTrackingAt:inView:

?

Другие вопросы по тегам