如何使用 setContentView 更改停靠图标以在 mac os x 中显示一个大字符

Posted

技术标签:

【中文标题】如何使用 setContentView 更改停靠图标以在 mac os x 中显示一个大字符【英文标题】:how to change dock icon using setContentView to display one big character in mac os x 【发布时间】:2014-11-26 14:36:23 【问题描述】:

我想将应用程序的停靠栏图标更改为一个大字符,例如“A”或“B”,例如使用 swift 或 Objective C

【问题讨论】:

这个问题是too broad。 我想更改 osx 应用程序的停靠栏图标以显示文本而不是使用 swift 或 Objective c 正在运行的应用程序的图标,感谢您的快速响应 我尝试了很多代码但没有工作并且在网上搜索了太长时间没有结果所以请帮助我这对我来说真的是一件大事 查看NSDockTile 的文档。它应该给你你正在寻找的东西。 我已经阅读并尝试了目标 C 中的 setViewContent 和 swift 中的 viewContent 但没有任何效果! 【参考方案1】:
import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate 

    @IBOutlet weak var window: NSWindow!

    @IBOutlet weak var dockView: NSView!
    @IBOutlet weak var dockText: NSTextField!
    let appDockTile =  NSApplication.sharedApplication().dockTile

    func prepareDock()
        appDockTile.contentView = dockView
        appDockTile.display()
    
    func changeText()
        dockText.stringValue = "B"
         appDockTile.display()
    
    func applicationDidFinishLaunching(aNotification: NSNotification) 
        // Insert code here to initialize your application
        prepareDock()

    

    func applicationWillTerminate(aNotification: NSNotification) 
        // Insert code here to tear down your application
    

    @IBAction func btnChangeText(sender: AnyObject) 
        changeText()
    


【讨论】:

非常感谢我的代码完美无缺。但是如何更改图标中文本的颜色和大小? 我知道如何更改文字大小和颜色 只是不要忘记在更改视图后再次调用 appDockTile.display(),在这种情况下是您的文本颜色或大小。【参考方案2】:

OSX swift 4.x 我的两分钱:

(让它闪烁..)

...

self.HeartBeatTimer = Timer.scheduledTimer(withTimeInterval: DELTA_T, repeats: true, block:  (t: Timer) in

      let name = colored ? "heartbeat" : "heartbeat_red"
      let image = NSImage(named:  name)            
      let appDockTile =  NSApplication.shared.dockTile
      appDockTile.contentView = NSImageView(image: image!)
      appDockTile.display()

【讨论】:

以上是关于如何使用 setContentView 更改停靠图标以在 mac os x 中显示一个大字符的主要内容,如果未能解决你的问题,请参考以下文章

无法更改停靠小部件填充

使用自定义 WinForms 控件,我可以更改嵌套控件停靠在里面的矩形吗?

以编程方式更改停靠标题

停靠更改时,UserControl 未在 FlowLayoutPanel 中呈现

更改 Qt/Mac Dock 图标有窗口标题副作用

如何在隐身模式中设置 chrome 开发者工具的默认位置