2

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

考えられる 1 つの方法は、installerplugin にparentSection という Installersection アウトレットが含まれていることです。また、installersection クラスには、戻り値がセクションをロードするかどうかを決定する関数 shouldload があります。また、この記事では、インストーラー セクションのメソッドがオーバーロードされる可能性があることに言及しています。しかし、parentSection はインストーラーペイン クラス内の単なるオブジェクトであるため、関数をオーバーロードする方法を考えることができません。

4

1 に答える 1

3

サンムクがこの質問をしてから数か月が経ちましたが、これを行う方法を見つけたので、回答を投稿すると思いました.

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

于 2012-08-06T04:01:07.607 に答える