[英]How to open app window on toolbar click in safari app extension?
[英]Can I make text badges for Safari App Extension toolbar buttons less ugly?
Safari App Extensions不允許您動態更改工具欄按鈕圖像,但是通過將字符串傳遞給擴展處理程序的validationHandler
方法,它們確實允許您將按鈕的字符串添加為徽章 。
override func validateToolbarItem(in window: SFSafariWindow, validationHandler: @escaping ((Bool, String) -> Void)) {
// This is called when Safari's state changed in some way that would require the extension's toolbar item to be validated again.
validationHandler(true, "1")
}
不幸的是,此標記文本看起來不太好:
我在文檔中找不到有關自定義標章文本外觀的任何內容,但以防萬一,有什么方法可以避免裁剪可能是圓形標章的內容?
我認為無法更改徽章文字的外觀。 但是,現在可以使用工具欄項的setImage
方法動態設置按鈕圖像。
例如,在您的SFSafariExtensionHandler
包含以下內容,將在單擊按鈕時將工具欄項目圖標更改為默認用戶圖標:
override func toolbarItemClicked(in window: SFSafariWindow) {
let image = NSImage(named: NSImageNameUser)
window.getToolbarItem { $0?.setImage(image) }
}
您可以提供任何NSImage
,盡管它應符合Apple的模板圖像准則 。
我不知道為什么您鏈接到的《 Safari應用程序擴展編程指南》中沒有對此進行說明。 我懷疑以后可能已添加了此功能,並且該指南已過時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.