从菜单中选择项目时,自定义NSCell内的NSPopUpButtonCell不会更改选择

时间:2009-06-02 20:23:21

标签: cocoa macos nspopupbuttoncell

我在自定义NSCell中有一个NSPopUpButtonCell,我正在使用

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

在点击时生成弹出菜单。

我还重写了copyWithZone:在我的自定义单元格中复制popUpCell实例变量,以便我的表视图中的每一行都有自己的弹出单元格。

我的问题是虽然弹出的菜单很好,并且您可以从菜单中选择一个项目,但是当选择一个项目时,单元格不会更改其所选项目以匹配菜单中所选项目。

但是,如果我在带有复制单元格的区域的副本中注释掉行,那么就选择进行而言它会正常运行(更改为匹配所选项目,尽管每一行都会有相同的选定项目)。

有人知道为什么会这样,或者更重要的是,我如何解决它?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用

–trackMouse:inRect:ofView:untilMouseUp: 

而不是

startTrackingAt:inView:

答案 1 :(得分:0)

我建议不要复制单元格,而是使用:

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

...委托方法在绘制每一行之前使用正确的数据设置单元格。

相关问题