2016-04-11 7 views
0

OS Xアプリケーションは10.9 - 10.11をサポートしています。印刷パネルのアクセサリビューは、10.10および10.9では表示されません。

MyPrintView *printView = [[MyPrintView alloc] initWithData: [self myData]]; 
NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView: printView]; 
NSPrintPanel *printPanel = [printOperation printPanel]; 
[printPanel addAccessoryController:[[MyPrintAccessory alloc] init]]; 
if (printOperation) 
{ 
    [printOperation runOperationModalForWindow:_window delegate:_window didRunSelector:nil contextInfo:nil]; 
} 

アクセサリビューがコントローラ

@interface MyPrintAccessory : NSViewController <NSPrintPanelAccessorizing> 

とXIBファイルで定義されたビューで定義されます。私はこのような印刷アクセサリビューを追加することにより、印刷動作​​にいくつかのオプションを追加してみてください。

エルキャピタンで期待どおりにすべてが完璧に動作しますが、ヨセミテとマーベリックスにプリントパネルは私が、私はそれを選択した場合、何も表示されない、どこアクセサリースペースをポップアップボタンで、私のアクセサリーを選択してみましょうしながら、表示されるはずのビューは空のままです。コンパイル時でも実行時でもエラーメッセージは生成されません。

誰かがこの問題を解決するためのヒントやヒント、この動作の原因を検索する方法はありますか?

+0

の唯一の違いだと述べているように、ということありません* Console.app *を使用してシステムログを調べることができますか? – trojanfoe

+0

はい、Console.appにもメッセージはありません。 – MartinW

答えて

0

私のアプリケーションがあり若干の違いはあるが、序文には、同じことをして、10.10

で動作します。 私のアプリケーションはNSDocumentベースのアプリケーションです。 印刷するとき、私はNSDocumentからNSPrintInfoをつかむと、

はこのように見える私の印刷方法(あなたがあなたの質問に埋め込まれているコード)にそれを養う:

[printView requestPrintWithPrintInfo:[doc printInfo]]; 

その後、代わりに-printOperationWithView:を呼び出します、私は-printOperationWithView:printInfo:を呼び出して、私は、送信者から来たprintInfoを渡すAppleのドキュメントから

、あなたは-printOperationWithViewを呼び出す必要がある場合:

/*アプリケーションのグローバルNSPrintInfoが適切な場合に使用するための、わずかな利便性。これらのメソッドはそれぞれ、[NSPrintInfo sharedPrintInfo]を呼び出して、上にリストされた同様の名前のメソッドを呼び出します。私に

それはとにかく動作するはずのように聞こえるが、私は、あなたが「エラー・メッセージは、コンパイル時にも実行時にどちらも生成されない」と言うときそれは一見我々のコード

+0

nib/xibが正しくロードされているか調べましたか?私は10.10より前に '(id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)bundle'を使って明示的に名前をつけるか、それに応じてNSViewControllerサブクラスの初期化子をオーバーライドする必要があります。 – MartinW