【发布时间】:2018-01-12 14:15:45
【问题描述】:
我的应用中有一个 tableview,我需要更新它,但我无法让它工作。 首先,更清楚的是我发布了数组控制器、表格视图和将数据插入我的表格视图的代码。
首先是数组控制器:
我的表格视图:
这就是我配置 tableview 和数组控制器的方式。要将数据插入到我的表格视图中,我使用了 keydown 方法。因此,当用户按下字母“i”时,会插入一行数据。
-(void)keyDown:(NSEvent *)event
{
static int i = 1;
NSString * str = [NSString stringWithFormat:@"%i", i];
NSMutableString *str2 = [NSMutableString string];
[str2 appendString:@"Task "];
[str2 appendString:str];
if([event keyCode] == 0x22 && projectState == YES)
{
dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], @"check",str,@"numero",str2,@"designation",@"1",@"durpr",datedebutProjet,@"debpr",datefin,@"finpr",datedebutProjet,@"debpr1",datefin,@"finpr1",@"0",@"mgt", nil];
[_arrayController addObject:dict];
[check setTag:i];
nbrTask = i;
i++;}
}
我对此没有问题,但我无法更改 tableView 中的数据。我用它来获取数据:
int Row = [tableView selectedRow];
NSString * designation = [[[_arrayController arrangedObjects]objectAtIndex:Row]valueForKey:@"designation"];
并尝试以这种方式替换它:
[[[_arrayController arrangedObjects]objectAtIndex:Row] setValue:finalString forKey:@"designation"];
但它没有用。然后我试了一下[tableView reloadData]。但这并没有改变什么。没有数据被修改。请帮帮我,我迷路了
【问题讨论】:
-
不相关,但强烈建议使用基于视图的单元格。它更容易处理。并使用自定义类而不是可变字典。这更舒服——尤其是与阵列控制器结合使用——也是。
-
数据是否按预期变化?
-
不,它根本没有改变,这就是问题
标签: objective-c macos cocoa nstableview