2016-12-09 9 views
1

Safari App Extensionsを使用すると、動的にツールバーのボタン画像を変更することはできませんが、拡張ハンドラのvalidationHandlerメソッドに文字列を渡すことで、あなたにadd a string to the button as a badgeを聞かせてください:Safari App Extensionのツールバーボタンのテキストバッジをあまりにも醜くすることはできますか?

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") 
    } 

残念ながら、この呼び名を与えられたテキストは見栄えしません。私は呼び名を与えられたテキストの外観をカスタマイズに関するドキュメントに何かを見つけることはできませんが、念のために、おそらくあることを意味するもののクリッピングを避けるためにどのような方法がある

enter image description here

円形のバッジ?

+0

私は考えられない、サファリには変更できないデザインチャートがあります – Fky

答えて

2

バッジテキストの外観を変更することはできません。ただし、ツールバー項目のsetImage methodを使用して、ボタン画像を動的に設定することが可能になりました。例えば

、ボタンがクリックされたときに、あなたのSFSafariExtensionHandlerに次のものを含む、デフォルトのユーザーアイコンにツールバー項目のアイコンを変更します:

override func toolbarItemClicked(in window: SFSafariWindow) { 
    let image = NSImage(named: NSImageNameUser) 
    window.getToolbarItem { $0?.setImage(image) } 
} 

それはAppleのguidelines for template imagesに従わなければならないのにあなたは、任意のNSImageを提供することができます。

リンク先のSafari App Extension Programming Guideにこれが記載されていない理由がわかりません。私は、この機能が後で追加され、ガイドが古くなっている可能性があると考えています。

関連する問題