2011-09-30 112 views
4

我有一個4列的tableview。拳頭有一些文字,其他3個是複選框。
我需要在一個特定的行中禁用3個複選框中的2個。我將行號保存在一個NSInteger變量上。禁用NSTableView上的特定單元格

我實現:

- (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; 
    } 
} 

發生了什麼是奇怪的。我的特定行的Colum1和Colum2被禁用,直到我點擊另一行,然後所有行都禁用這兩列。

如何禁用這兩個非常特定的單元格(僅在myindex行,只有column1column2)?

這是一個Mac OS X應用程序,而不是iOS應用程序。
謝謝

回答

4

您必須明確設置enabled屬性每次都爲這兩種情況。

//... 
else 
{ 
    [aCell setEnabled:YES]; 
} 
+0

太好了,謝謝!那樣做了。 –

相關問題