【发布时间】:2012-04-01 06:09:11
【问题描述】:
现在,我一直在阅读有关 NSArrayController 的所有内容。
我已经正确设置了我的 xib、NSArrayController、NSTableView 和绑定——除了我的 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 添加对象,数组控制器指示表格视图绘制新内容,但它会选择具有相同值的所有行 在他们的NSCells 中:
使用数组控制器的-addObject:myDictionary 它将绘制新行并选择新添加的行:
(在两个屏幕上,我每秒都连续点击多次)
为什么会这样?
使用[NSMutableArray -addObject:]时,我需要自己处理正确的行选择吗?
或者这是一个错误?
Mac OS 10.7.3
Xcode 4.3
基础 SDK 10.7
部署目标 10.6
【问题讨论】:
-
我看不懂这些截图。在第一个屏幕截图中,它选择了所有 :17 行,即与添加的第一项匹配的行。在第二个中,只有一个具有给定值的项目。我在第一种情况下,每次单击都会扩展原始选择,直到时间更改为下一秒,而在第二种情况下,每次单击后选择移动?
-
@noa 是的,没错……有什么线索吗?
标签: objective-c cocoa nsmutablearray nstableview nsarraycontroller