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

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

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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 13 июня 2009

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

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

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

0 голосов
/ 12 июня 2009

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

–trackMouse:inRect:ofView:untilMouseUp: 

вместо

startTrackingAt:inView:

...