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:
?