У меня есть приложение, которое зависает всякий раз, когда я вызываю NSPrintOperation.
У меня есть представление, которое создает отдельный класс (UIView), как это:
PBPrintImage *printImage = [[PBPrintImage alloc] init];
printImage.image = finalImage;
[printImage printWithNoPanel:self];
Тогда внутри PBPrintImage у меня есть следующий метод:
- (void)printWithNoPanel:(id)sender {
CGSize picSize = CGSizeMake(300, 446);
NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
NSRect imageRect = NSRectFromCGRect(CGRectMake(0, 0, picSize.width, picSize.height));
NSImageView *imageView = [[NSImageView alloc] initWithFrame:imageRect];
[imageView setImage:image];
NSPrintOperation *op = [NSPrintOperation printOperationWithView:imageView printInfo:printInfo];
[op setCanSpawnSeparateThread:YES];
[op setShowsPrintPanel:NO];
[op runOperation];
}
Если я не называю это, приложение работает как подозревается. И я пытался звонить с и без setCanSpawnSeparateThread:
. Как мне настроить его так, чтобы он был в отдельном потоке и, следовательно, не мешал регулярному потоку приложения?
Он печатает, но это только половина работы.