Выборочное отображение панели установки плагина установщика во время выполнения
Я написал установочный плагин для отображения настраиваемой панели в установщике pkg. Я хочу отображать панель только во время первой установки и скрывать ее при обновлении. Я знаю, как узнать, был ли пакет уже установлен или нет, но я не могу понять логику отображения / скрытия панели установки на основе решения во время выполнения.
Один из способов, о котором я могу подумать, заключается в том, что установочный плагин содержит выход раздела Установщика, называемый parentSection. И у класса installersection есть функция загрузки, возвращаемое значение которой решает, должен ли быть загружен раздел или нет. И в этой статье упоминается, что методы установки раздела могут быть перегружены. Но я не могу придумать способ перегрузить функции, так как parentSection - это просто объект внутри класса installerpane.
1 ответ
Несмотря на то, что прошло уже несколько месяцев с тех пор, как sanmukh задал этот вопрос, я решил опубликовать ответ, поскольку выяснил, как это сделать.
Решение действительно заключается в создании подкласса InstallerSection и переопределении метода shouldLoad. Чтобы использовать его, вы должны отредактировать файл Info.plist вашего плагина и изменить запись для "NSPrincipalClass" (или "Principal Class", как он появляется в Xcode 4), чтобы он был вашим новым производным классом InstallerSection. После этого при загрузке пакета будет вызван новый метод shouldLoad, позволяющий программно решить, должна ли панель установки быть видимой.