【问题标题】:Can I make text badges for Safari App Extension toolbar buttons less ugly?我可以让 Safari App Extension 工具栏按钮的文本徽章不那么难看吗?
【发布时间】:2017-05-10 04:28:12
【问题描述】:

Safari App Extensions 不允许您动态更改工具栏按钮图像,但它们允许您通过将字符串传递给扩展处理程序的 validationHandler 方法来add a string to the button as a badge

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

很遗憾,这个带标记的文字看起来不太好:

我在文档中找不到有关自定义标记文本外观的任何内容,但以防万一,有什么方法可以避免剪裁大概是圆形标记的内容?

【问题讨论】:

  • 我觉得不可能,safari 有一个设计图是不能修改的

标签: macos safari safari-app-extension


【解决方案1】:

我认为无法更改徽章文本的外观。不过,现在可以使用工具栏项的setImage method 动态设置按钮图像。

例如,在您的SFSafariExtensionHandler 中包含以下内容将在单击按钮时将工具栏项图标更改为默认用户图标:

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

您可以提供任何NSImage,但它应符合 Apple 的guidelines for template images

我不知道为什么您链接到的 Safari 应用程序扩展编程指南中没有记录这一点。我怀疑此功能可能是后来添加的,并且该指南已过时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多