我在自定义NSCell中有一个NSPopUpButtonCell,我正在使用
- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView
在点击时生成弹出菜单。
我还重写了copyWithZone:在我的自定义单元格中复制popUpCell实例变量,以便我的表视图中的每一行都有自己的弹出单元格。
我的问题是虽然弹出的菜单很好,并且您可以从菜单中选择一个项目,但是当选择一个项目时,单元格不会更改其所选项目以匹配菜单中所选项目。
但是,如果我在带有复制单元格的区域的副本中注释掉行,那么就选择进行而言它会正常运行(更改为匹配所选项目,尽管每一行都会有相同的选定项目)。
有人知道为什么会这样,或者更重要的是,我如何解决它?
答案 0 :(得分:0)
您是否尝试过使用
–trackMouse:inRect:ofView:untilMouseUp:
而不是
startTrackingAt:inView:
答案 1 :(得分:0)
我建议不要复制单元格,而是使用:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
...委托方法在绘制每一行之前使用正确的数据设置单元格。