Objective c 禁用NSTableView上的特定单元格
我有一个4列的tableview。第一个有一些文本,另外3个是复选框。Objective c 禁用NSTableView上的特定单元格,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我有一个4列的tableview。第一个有一些文本,另外3个是复选框。 我需要禁用一行中3个复选框中的2个。我将行号保留在NSInteger变量上 我实施了: - (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex 在这里,我检查列标识符以了解我是否位于正确的列,一旦我知道,我将检查行
我需要禁用一行中3个复选框中的2个。我将行号保留在NSInteger变量上 我实施了:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
在这里,我检查列标识符以了解我是否位于正确的列,一旦我知道,我将检查行是否正确并将单元格设置为禁用。代码如下:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
{
if(([[aTableColumn identifier] isEqualToString:@"column1"]) || ([[aTableColumn identifier] isEqualToString:@"column2"]))
{
if (rowIndex == myindex) // myindex holds the row index where I need to disable the cells
{
[aCell setEnabled:NO];
}
}
else
{
return;
}
}
发生的事情很奇怪。我的特定行的列1和列2被禁用,直到我单击另一行,然后所有行都禁用这两列
如何禁用这两个非常特定的单元格(仅在myindex
行和column1
和column2
中)
这是Mac OS X应用程序,不是iOS应用程序。谢谢对于这两种情况,每次都必须显式设置
enabled
属性
//...
else
{
[aCell setEnabled:YES];
}