Как я могу изменить значок панели инструментов в расширении приложения safari во время выполнения?

Я нашел это в документации.

https://developer.apple.com/documentation/safariservices/sfsafaritoolbaritem

что привело меня к возможности использовать переменную окна в функции toolbarItemClicked, чтобы получить ссылку на такой элемент панели инструментов.

var toolbaritemretrieved = false
window.getToolbarItem { (item) in
            toolbaritem = item! as SFSafariToolbarItem;
            toolbaritemretrieved = true;
        }

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

let path = Bundle.main.path(forResource: "newIcon", ofType: "png")!;
let icon = NSImage(path);
while(!toolbaritemretrieved){
                        //wait for toolbar item to be retrieved
                    }
                    toolbaritem?.setImage(icon);
                    SFSafariApplication.setToolbarItemsNeedUpdate();

Однако это не работает. Видимых ошибок нет, но по какой-то причине значок не отображает новое изображение.

1
0
1 026
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, оказывается, что на самом деле с моим кодом на данный момент не было ничего плохого, и у меня была забытая точка останова.

Не могли бы вы помочь мне в этом. Я столкнулся с той же проблемой. Не удалось установить значок приложения.

Karamjeet Singh 13.02.2020 08:13

Я создал расширение Safari в проекте xCode.

Karamjeet Singh 02.03.2020 16:17

Кроме того, у меня есть другой запрос, например хром, есть функция getMainefesto (), но как мы можем использовать это в Safari.

Karamjeet Singh 02.03.2020 16:17

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