Чтобы получить представление о том, что я делаю, без публикации страниц кода ... У меня есть операция NSO, которую я использую для обработки файлов при их добавлении в папку. В этой операции NSO я использую NSNotificationCenter для отправки уведомлений в NSView при каждом запуске новой работы. Идея в том, что я хочу добавить новое подпредставление, чтобы дать мне некоторую информацию о работе, которая только началась. Проблема в том, что я не могу получить новые подпредставления для рисования. Вот что у меня сейчас есть.
- (void)drawRect:(NSRect)dirtyRect
{
NSLog(@"Draw Count %i", [jobViewArray count]);
int i = 0;
while (i < [jobViewArray count]) {
[self addSubview:[jobViewArray objectAtIndex:i]];
}
}
и далее вниз:
-(void) newJobNotification: (NSNotification *) notification
{
if (!jobViewArray)
jobViewArray = [[NSMutableArray alloc] init];
++jobCount;
NSRect rect;
rect.size.width = 832;
rect.size.height = 120;
NSPoint point = { 0, ((jobCount * 120) - 120) };
rect.origin = point;
ProgressView *newJob = [[ProgressView alloc] initWithFrame:rect];
[jobViewArray addObject:newJob];
NSLog(@"Notice Count %i", [jobViewArray count]);
}
}
Когда я использую свое приложение, чтобы добавить работу, мое NSView правильно получает уведомление, подпредставление правильно добавляется в jobViewArray
, но когда снова вызывается drawRect:
, мой jobViewArray
становится пустым. Это первый раз, когда я пытался сделать что-то подобное, так что я, вероятно, делаю что-то совершенно не так ... Я думаю, это само собой разумеется, поскольку это не работает, а?