Связи какао между NSTableView и NSMutableArray отказываются обновляться - PullRequest
0 голосов
/ 26 июня 2010

Хорошо, я очень плохо знаком с Obj-C и Cocoa, но я уверен, что мои привязки здесь верны.Я гуглил, искал переполнение стека и проверял свои значения снова и снова.

Итак, вот мои привязки:

image

Они подключаются к этомукласс:

@interface TMMaddMangaWindowDelegate : NSWindowController {
...
}
...
@property (copy) NSMutableArray* mangaList;
...
@end



@implementation TMMaddMangaWindowDelegate
...
@synthesize mangaList;
// - (NSMutableArray*) mangaList {
//   NSLog(@"mangaList was called!");
//   return mangaList;
//}
//- (void) setMangaList:(NSMutableArray *) input{
//  NSLog(@"setMangaList was called!");
//  [mangaList autorelease];
//  mangaList = [input retain];
//}
...
-(void) populateList:(NSArray*)list{
    NSMutableArray* newArray = [[NSMutableArray alloc] initWithArray:list];
    NSLog(@"Populating List.");
    for(NSXMLNode* node in list){
        [newArray addObject:node.description];
        //[[self mutableArrayValueForKey:@"mangaList"] addObject:node.description];
            //NSLog(@"%@", node.description);
    }
    [self setMangaList:newArray];
    [[self chapterListDownloadIndicator] stopAnimation:self];
}

Как видите, я также попробовал подход mutableArrayValueForKey, который ничего не дал.Я точно знаю, что mangaList получает предметы.

Я работал над этим некоторое время и, возможно, допустил глупую ошибку.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 30 июня 2010

Похоже, вы меняете mangaList за спиной контроллера массива. Всякий раз, когда вы вносите изменение в mangaList, вы должны сначала позвонить [self willChangeValueForKey:@"mangaList"];, а затем [self didChangeValueForKey:@"mangaList"];, как только вы закончите с изменением. это позволит контроллеру массива узнать, что ему нужно посмотреть, что изменилось.

0 голосов
/ 01 июля 2010

Оказывается, проблема была в том, что у окна не было идентификатора класса Владельца файлов, установленного для моего оконного контроллера / делегата. В тот момент, когда я установил это, окно ожило.

Эта проблема также препятствовала работе моего NSProgressIndicator.

...