2

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:。別のスレッドにする必要があり、アプリケーションの通常のフローを台無しにしないように設定するにはどうすればよいですか?

印刷はしますが、それは仕事の半分にすぎません。

4

1 に答える 1