Выборочное отображение панели установки плагина установщика во время выполнения

Я написал установочный плагин для отображения настраиваемой панели в установщике pkg. Я хочу отображать панель только во время первой установки и скрывать ее при обновлении. Я знаю, как узнать, был ли пакет уже установлен или нет, но я не могу понять логику отображения / скрытия панели установки на основе решения во время выполнения.

Один из способов, о котором я могу подумать, заключается в том, что установочный плагин содержит выход раздела Установщика, называемый parentSection. И у класса installersection есть функция загрузки, возвращаемое значение которой решает, должен ли быть загружен раздел или нет. И в этой статье упоминается, что методы установки раздела могут быть перегружены. Но я не могу придумать способ перегрузить функции, так как parentSection - это просто объект внутри класса installerpane.

1 ответ

Решение

Несмотря на то, что прошло уже несколько месяцев с тех пор, как sanmukh задал этот вопрос, я решил опубликовать ответ, поскольку выяснил, как это сделать.

Решение действительно заключается в создании подкласса InstallerSection и переопределении метода shouldLoad. Чтобы использовать его, вы должны отредактировать файл Info.plist вашего плагина и изменить запись для "NSPrincipalClass" (или "Principal Class", как он появляется в Xcode 4), чтобы он был вашим новым производным классом InstallerSection. После этого при загрузке пакета будет вызван новый метод shouldLoad, позволяющий программно решить, должна ли панель установки быть видимой.

Другие вопросы по тегам