gpt4 book ai didi

objective-c - NSTableView:以编程方式添加一行会导致选择具有相同值的许多行?

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

现在,我一直在阅读有关 NSArrayController 的所有内容。
我已经正确设置了我的 xib、NSArrayController、NSTableView 和绑定(bind)——除了我的 NSTableView 的一个奇怪行为之外,一切都正常。

首先用一些代码来描绘场景:

@implementation MyAppDelegate

@synthesize arrayController, dataArray;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.dataArray = [NSMutableArray array];
}

- (IBAction)myControllerAddAction:(id)sender {
NSString *val = [[NSDate date] description];
NSMutableDictionary *item = [NSMutableDictionary dictionaryWithObjectsAndKeys:val, @"date", nil];
[serversController addObject:item];
}

- (IBAction)myArrayAddAction:(id)sender {
NSString *val = [[NSDate date] description];
NSMutableDictionary *item = [NSMutableDictionary dictionaryWithObjectsAndKeys:val, @"date", nil];
[[self mutableArrayValueForKey:@"dataArray"] addObject:item];
}

@end

使用 -mutableArrayValueForKey:@"myNSArrayControllerStore" 并通过返回的 NSMutableArray 代理的 -addObject:myDictionary 添加对象,数组 Controller 指示 TableView 来绘制新内容,但它会选择 NSCell 中具有相同的所有行:

enter image description here

使用数组 Controller 的-addObject:myDictionary它将绘制新行并选择新添加的行:

enter image description here

(在两个屏幕上,我每秒连续点击多次)

这是为什么?
使用 [NSMutableArray -addObject:] 时,我是否需要自行处理正确的行选择?
或者这是一个错误?

Mac OS 10.7.3
Xcode 4.3
Base SDK 10.7
Deployment target 10.6

最佳答案

使用数组 Controller 的 -addObject: 方法是处理插入的正确方法。它确保 Controller 向与其绑定(bind)的对象发送正确的消息。

听起来阵列 Controller 方法工作正常。

能够将数组 Controller 绑定(bind)到可变数组,并让它们正确地监视对绑定(bind)数组的插入,这将很有用,但我不认为它们被设计为以这种方式工作。

关于objective-c - NSTableView:以编程方式添加一行会导致选择具有相同值的许多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724734/

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