0
다른 멤버의 제안에 따라 최근 프로젝트 일부를 다시 작성했습니다. 나는 이전에 어려움을 겪어 왔으며, 단지이 문제로 고생하는 데 몇 시간을 소비했다. 모든/모든 도움을 많이 주시면 감사하겠습니다.NSTableView tableView 호출시 모든 행을 변경합니다.
NSTableView에 NSMutableArray가있는 항목을 두 개 이상 추가하려고하면 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에서
감사합니다. 그러나 그 주석에 대해 언급하면 날짜에 아무 것도 할당되지 않습니다. myRenamed (수정 날짜)로 설정된 값을 가져와야합니다. – loopifnil
새로 추가 된 날짜를 dateList에 저장하고 해당 객체를 사용하는 것이 어떨까요? 나는 당신이 Date 클래스에서 무엇을하는지 확신 할 수 없다. – Gary
나는 그것을 줄 것이다. 개체를 저장하기 위해 내 옵션을 열어두고 싶었지만 날짜는 nsstring이 좋을 것입니다. – loopifnil