簡體   English   中英

NSTableCell setDataCell禁用編輯

[英]NSTableCell setDataCell disables editing

我有一個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
{
}

但是我仍然無法雙擊來編輯該字段。

有什么想法我要去哪里嗎?

原來,即使我在做:

[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];

既然我已經做到了,那么一切似乎都可以正常運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM