修改单元格后更新 NSTableView

Posted

技术标签:

【中文标题】修改单元格后更新 NSTableView【英文标题】:Update NSTableView after cell modification 【发布时间】:2017-07-19 12:42:26 【问题描述】:

我是 Objective c 和 Cocoa 的新手,我在使用 NSTableView(基于 Cell 的 NSTableView)时遇到了一些麻烦。我有两个问题

首先,一旦用户在修改单元格后点击回车,我想自动更新表格视图中的一些数据。我知道如何更新数据,因为我使用 NSDictionnary 和 arraycontroller 来填充 tableView,但我不知道或者更确切地说我不明白一旦用户修改了某个列中的单元格后如何触发操作。

要填充表格视图,我使用以下代码:

//Code for inserting data into my tableview when the user enter the "i" key

-(void)keyDown:(NSEvent *)event

static int i = 1; // used as a counter
NSString * str = [NSString stringWithFormat:@"%i", i];
NSMutableString *str2 = [NSMutableString string];
[str2 appendString:@"Task "];
[str2 appendString:str];

if([event keyCode] == 0x22)

dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:false], @"check",str,@"numero",str2,@"designation",@"1",@"length",²"13/07/17",@"debpr",@"12/07/17",@"finpr",@"11/07/17",@"debpr1",@"12/07/17",@"finpr1",@"0",@"mgt", nil];

 checkState = [NSMutableDictionary dictionaryWithObjectsAndKeys:[NSNumber  numberWithBool:false],[NSNumber numberWithInteger:i], nil];
 [_arrayController addObject:dict];

 [check setTag:i];

   
   nbrTasks = i;
    i++;
     

它有效,我可以修改我的表格视图单元格,但在编辑完成后我无法触发操作。我尝试使用界面构建器中的单元格视图插入一些操作,但它不起作用,当我更改 TableView 中的值时没有任何变化。有人可以使用代码示例来解释吗?因为我对使用 Objective C 和 Cocoa 编程真的很陌生,而且我不知道该怎么做。

其次,我想知道如何在选择某些行时触发操作,假设我想在选择特定行时更改标签。我该怎么做?

【问题讨论】:

我觉得你将人们引导到 YouTube 视频而不是发布你自己的行代码非常愚蠢。 将文本字段的动作连接到表格视图的委托。检查NSTableViewDelegate 以获取选择更改通知。 【参考方案1】:

非常感谢 Willeke,但我终于使用了我想要的 controlTextDidEndEditing 方法。再次非常感谢!

【讨论】:

以上是关于修改单元格后更新 NSTableView的主要内容,如果未能解决你的问题,请参考以下文章

重新排列表格视图单元格后如何更新核心数据记录

R Shiny Handsontable 更改单个单元格后自动更新功能

在 UICollectionView 中删除单元格后,如何更新作为 UICollectionViewCell 一部分的按钮标签?

删除部分中的最后一个单元格后,iOS 应用程序崩溃

在 QTableView 中编辑单元格后使用 TAB 键前进时如何避免编辑模式?

excel合并单元格后怎么边框线没了?