2012-04-25 15 views
2

インストーラプラグインを作成して、pkgインストーラにカスタムペインを表示しました。最初のインストール時にのみペインを表示し、アップグレード時には非表示にします。私はパッケージが既にインストールされているかどうかを調べる方法を知っていますが、ランタイムの決定に基づいてインストーラパネルを表示/非表示するロジックを理解することはできません。実行時にinstallerpluginのInstallerpaneを選択的に表示

私が考えることができる1つの方法は、インストーラプラグインに、parentSectionというInstallersectionのアウトレットが含まれていることです。そして、installserectionクラスには、セクションがロードされるべきかどうかを返す値を持つ関数shouldloadがあります。このarticleには、installserectionメソッドがオーバーロードされる可能性があることが記載されています。しかし、parentSectionはインストーラパネルクラス内のオブジェクトなので、関数のオーバーロードを考える方法はありません。

答えて

3

sanmukhがこの質問をしてから数ヶ月が経ちましたが、私はこれを行う方法を考え出したので回答を投稿すると思いました。

解決策はInstallerSectionをサブクラス化し、shouldLoadメソッドをオーバーライドすることです。これを使用するには、プラグインのInfo.plistファイルを編集し、 "NSPrincipalClass"(またはXcode 4に表示される "Principal Class")のエントリを新しいInstallerSection派生クラスに変更する必要があります。その後、パッケージがロードされると、新しいshouldLoadメソッドが呼び出され、インストーラペインを表示するかどうかをプログラマチックに決定できます。

+0

ありがとうございました。現在、私は 'gotoNextPane()'メソッドで次のペインにジャンプしていた回避策を使用していましたが、これも同様に試みます。 – sraok

関連する問題