我在基于视图的模式下有一个NSTableview,在其中我有自定义的NSTableViewCells。每个单元格都有一个按钮,但我只想在选中单元格时显示按钮。因此,当取消选择单元格时,我想隐藏按钮。我试图迭代每一行都没有成功,我不确定如何解决这个问题。
这就是我要显示的按钮
-(void)tableViewSelectionDidChange:(NSNotification *)notification
{
...
//Hide / show dropdown menus
NSInteger selected = [_tableView selectedRow];
CustomCell *cell = [_tableView viewAtColumn:0 row:selected makeIfNecessary:NO];
[cell setIsMenuHidden:NO];
}
答案 0 :(得分:0)
管理让它工作,它之前没有工作,因为我将按钮设置为隐藏在-viewForTableColumn:Row方法中!仍然想知道是否有更好的方法来做到这一点:)
//Hide / show dropdown menus
NSInteger selected = [_tableView selectedRow];
for(int i = 0; i < [_tableView numberOfRows]; i++) {
if(i == selected) {
[[_tableView viewAtColumn:0 row:i makeIfNecessary:NO] setIsMenuHidden:NO];
} else {
[[_tableView viewAtColumn:0 row:i makeIfNecessary:NO] setIsMenuHidden:YES];
}
}
答案 1 :(得分:0)
在自定义单元格视图中,您可以覆盖-viewWillDraw
。呼叫super
,然后根据您想要的状态进行任何调整。
您可以使用表格视图的-rowForView:
和-isRowSelected:
方法来确定是隐藏还是显示按钮。或者,单元格视图的超级视图将是行视图,NSTableRowView
具有selected
属性(-isSelected
获取者)。