Macos NSTablview NSTextFieldCell集合可选择-

Macos NSTablview NSTextFieldCell集合可选择-,macos,delegates,nstableview,nstextfieldcell,Macos,Delegates,Nstableview,Nstextfieldcell,我试图针对特定条件取消选择一个nstextfieldcell。我已附上示例代码: -(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{ if(tableView == resizeTV){ if([[tableColumn identifier] isEqualToString:@

我试图针对特定条件取消选择一个nstextfieldcell。我已附上示例代码:

 -(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
if(tableView == resizeTV){
    if([[tableColumn identifier] isEqualToString:@"Name"]){
        if([[cell stringValue] isEqualToString:@"Cate"]){
            [cell setSelectable:FALSE];

        }
    }
  }
}
检查条件时仍在选择单元格。我已经将tableview绑定到tabledatasource和datadelegate的类名。我仍然可以选择单元格。我做错了吗?

使用NSTableView方法取消选择单元格
setSelectionHighlightStyle:

-(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
    if(tableView == resizeTV){
        if([[tableColumn identifier] isEqualToString:@"Name"]){
            if([[cell stringValue] isEqualToString:@"Cate"]){
               [table_view setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];

            }
      }
 }
}

使用此委托方法取消选择特定行

- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)row
{
    if (row==7)
    {
        [table_view setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];

    }
    else
    {
        [table_view setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleSourceList];

    }
    return YES;

}