2010-06-26 2 views
0

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

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

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

@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 набирает предметы.

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

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

ответ

0

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

Эта проблема также мешает работе моего NSProgressIndicator.

3

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

Смежные вопросы