Как я могу изменить значок панели инструментов в расширении приложения Safari во время выполнения? - PullRequest
0 голосов
/ 13 сентября 2018

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

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 голосов
/ 18 сентября 2018

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

...