Есть задача отрисовать N изображений на NSView. Но в начале я не знаю количество картинок, поэтому поставил работает в каком-нить фоне.
[NSThread detachNewThreadSelector:@selector(workInBackgroundThread:) toTarget:self withObject:nil];
когда он получит количество изображений, он отправит уведомление
- (void)workInBackgroundThread:(id)unusedObject {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//get image amount....
[[NSNotificationCenter defaultCenter] postNotificationName:@"gotImageAmount" object:nil];
//...
//continue to load images
}
Я пытаюсь изменить размер NSView в зависимости от количества изображений в функции уведомления.
-(void)processGotImagesAmount:(NSNotification*)notification
{
//others codes
[myNSView setFrame:CGRectMake(0, 0, calculateNewWidth, caculatedNewHeight)];//line A
//others codes
}
но когда приложение выполняет строку A, оно зависает,
[myNSView setFrame:CGRectMake(0, 0, calculateNewWidth, caculatedNewHeight)];
сам по себе не проблема, если я нажму на боттун, чтобы вызвать его, он работает!
но похоже, что это не работает в функции уведомления
Приветствую любой комментарий