我在文档中找到了这个。
https://developer.apple.com/documentation/safariservices/sfsafaritoolbaritem
这使我能够使用toolbarItemClicked函数中的window变量来获取对工具栏项的引用,就像这样。
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();
但是,这不起作用。没有可见的错误,但由于某种原因,图标不显示新图像。