gpt4 book ai didi

objective-c - 当更改选定行的数据时,NSTableView 崩溃

转载 作者:行者123 更新时间:2023-12-03 16:47:34 24 4
gpt4 key购买 nike

在我的 cocoa 应用程序中,我有 2 个 NSTableView。 AppDelegate 是它们两者的数据源。我想根据第一个 TableView 的选定行更改第二个 TableView 的数据。为此,我使用 NSDictionary。我为 Table1 数据数组中的每个条目添加一个数组。

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView{

if([table1 selectedRow] != -1 && [[aTableView identifier] isEqualToString:@"table2"]){

return [[dict objectForKey:[arrForTable1 objectAtIndex:[table1 selectedRow]]] count];
}

if([[aTableView identifier] isEqualToString:@"table1"]) return [arrForTable1 count];

return 0;
}


- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{

if([table1 selectedRow] != -1 && [[aTableView identifier] isEqualToString:@"table2"]){

return [[dict objectForKey:[arrForTable1 objectAtIndex:[table1 selectedRow]]] objectAtIndex:rowIndex];
}

if([[aTableView identifier] isEqualToString:@"table1"]){

return [arrForTable1 objectAtIndex:rowIndex];
}

return nil;
}

当在 table2 中选择一行,然后在 table1 中切换到具有空数组的行时,此代码会崩溃。

我该如何修复它?我尝试在 - SelectionShouldChangeInTableView: 方法中 [table2 deselectAll:self] 但它不起作用。它可以通过按钮触发 deselectAll: 方法,这样就可以了。

最佳答案

听起来,当 table1 中的选择发生更改时,您可能需要调用 [table2 reloadData]

关于objective-c - 当更改选定行的数据时,NSTableView 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9183935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com