Table Cell setDataatCell禁用编辑

时间:2014-08-05 13:20:14

标签: nstableview nstablecolumn

我有NSTableView我动态添加列。我刚刚添加了对setDataCell的调用来自定义我的单元格。代码如下:

for(NSUInteger columnIndex = 0; columnIndex < resultSet.columNames.count; ++columnIndex)
{
    NSTableColumn * newColumn = [[NSTableColumn alloc] initWithIdentifier: [NSString stringWithFormat: @"%ld", columnIndex]];

    [newColumn.headerCell setAlignment: NSCenterTextAlignment];
    [newColumn.headerCell setStringValue: resultSet.columNames[columnIndex]];
    [newColumn setDataCell: [[HSDisclosureTextFieldCell alloc] init]];
    [newColumn setEditable: YES];

    [resultsTableView addTableColumn: newColumn];
    if(newColumn.width < 60) [newColumn sizeToFit];
} // End of column loop

如果我删除了对setDataCell的通话,那么我仍然可以双击我的条目并进行编辑。

我已最小化HSDisclosureTextFieldCell包含以下内容(无覆盖):

@interface HSDisclosureTextFieldCell : NSTextFieldCell
{
}

但我仍然无法双击以再次编辑该字段。

我出错的任何想法?

1 个答案:

答案 0 :(得分:0)

即使我在做,也会结束:

[newColumn setEditable: YES];

并且:

- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row

已实施,我需要将setDataCell切换为:

HSDisclosureTextFieldCell * cell = [[HSDisclosureTextFieldCell alloc] init];
[cell setEditable: YES];
[newColumn setDataCell: cell];

现在我已经做到了,一切似乎都正常。