nstableviewtableview在调用时改变所有行



根据另一位成员的建议,我重写了我最近项目的一部分。我现在已经解决了我之前遇到的问题,只是花了几个小时来解决这个问题。任何/所有的帮助都非常感谢。

当我尝试用NSMutableArray添加多个项目到我的NSTableView时,它会用最近的条目替换dateList中的所有条目。这是我的。m文件。我在"将d对象日期设置为%@"中设置的NSLog将在我继续添加日期时第n次被调用。

 @implementation TableViewController
 @synthesize myDatePicker;
 NSString *myRenamed = @"CHANGED";
 int test = 0;

 - (id) init{
self = [super init];
if (self) {
    dateList = [[NSMutableArray alloc] init];
}   
return self;
 }

 -(void) awakeFromNib{
 [myDatePicker setDateValue: [NSDate date]];
 [self.myDatePicker sendActionOn:NSLeftMouseDown];
 NSLog(@"Hello from TableView at time: %@", myDatePicker.dateValue);
 }

- (IBAction)datePickerAction:(id)sender{
 test = 0;
[self getSetDate];
NSLog(@"getSetDate Finished with date %@", myRenamed);
[self myTableAdd];
NSLog(@"datePickerAction Finished");
 }

 - (void)getSetDate{
NSLog(@"Entering getSetDate%@", (myDatePicker.dateValue));
//set date to local & set format set on xib start
NSDate *myNewDate = [myDatePicker dateValue];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYYMMdd"];
myRenamed = [dateFormat stringFromDate:myNewDate];
NSLog(@"Ending getSetDate with %@",myRenamed);


  }

 - (NSInteger) numberOfRowsInTableView:(NSTableView *)tableView{
return [dateList count];
 }
 -(id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
Date *d = [dateList objectAtIndex:row];
NSString *identifier = [tableColumn identifier];
d.date=myRenamed;
[d setDate:d.date];
NSLog(@"setting d object date to %@", d.date);
test ++;
return [d valueForKey:identifier];
 }

 - (void) myTableAdd{
NSLog(@"Called myTableAdd");
[dateList addObject:[[Date alloc] init]];
[tableview reloadData];
 }

图片:http://cl.ly/NaEu这就是发生的事情,所有以前的日期条目都更改为最后单击的条目。感谢所有的帮助。

在objectValueForTableColumn中,您将使用刚刚添加的值覆盖每个值

d.date = myRenamed;

相关内容

  • 没有找到相关文章

最新更新