从菜单中选择项目时,自定义 NSCell 内的 NSPopUpButtonCell 不会更改选择
我在自定义 NSCell 中有一个 NSPopUpButtonCell,我用来
- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView
在单击它时生成弹出菜单。
我还在自定义单元格中重写了 copyWithZone: 来复制 popUpCell 实例变量,以便表视图中的每一行都有自己的弹出单元格。
我的问题是,虽然菜单弹出得很好,并且您可以从菜单中选择一项,但当选择一项时,单元格不会更改其所选项目以匹配从菜单中选择的项目。
但是,如果我用复制单元格的区域注释掉副本中的行,那么就选择而言,它的行为正常(更改以匹配所选项目,尽管每一行都将具有相同的所选项目)。
有谁知道这是为什么,或者更重要的是,我该如何解决它?
I have an NSPopUpButtonCell inside a custom NSCell and I'm using
- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView
to produce the pop up menu when it's clicked.
I have also overridden copyWithZone: in my custom cell to copy the popUpCell instance variable so that each row in my table view has its own pop up cell.
My problem is that although the menu pops up just fine, and you can select an item from the menu, when an item is selected the cell does not change its selected item to match the chosen one from the menu.
However, if I comment out the line in copy with zone which copies the cell, then it behaves properly as far as selection goes (changing to match the selected item, although every single row will then have that same selected item).
Does anybody know why this is, or more to the point, how I can fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否尝试过使用
而不是
?
Have you tried using
instead of
?
我建议不要复制单元格,而是使用:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
...在绘制每行之前使用正确数据设置单元格的委托方法。
I'd suggest not copying the cell and instead using the:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
...delegate method to set up the cell with the correct data before each row is drawn.