有一個任務需要在NSView上繪製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)];
本身沒有問題,如果我點擊一個bottun來調用它,它的工作原理!
但它看起來像它不通知功能
工作,歡迎任何評論