0

我试图让一个 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 的类名。我仍然可以选择单元格。我做错了吗? 实验台

4

1 回答 1

0

使用 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;

}
于 2013-05-04T05:30:23.813 回答