Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 禁用NSTableView上的特定单元格_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c 禁用NSTableView上的特定单元格

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 在这里,我检查列标识符以了解我是否位于正确的列,一旦我知道,我将检查行

我有一个4列的tableview。第一个有一些文本,另外3个是复选框。
我需要禁用一行中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];
}