【发布时间】:2020-08-16 20:12:45
【问题描述】:
我正在尝试在 macOS 系统托盘中写入两行文本,非常类似于 iStat pro 为网络活动所做的:
我知道我必须将 NSView 子类化才能这样做,但我无法设法让它工作,即使是一行:
class CustomView:NSView {
override func draw(_ dirtyRect: NSRect) {
let text: NSString = "my string"
let textRect: NSRect = NSMakeRect(0, 0, 100, 20)
text.draw(in: textRect)
}
}
然后:
let statusBar = NSStatusBar.system
statusItem = statusBar.statusItem(withLength: 100)
let view = CustomView()
view.wantsLayer = true
statusItem.button?.addSubview(view)
我在 stackoverflow 上找到了其他线程:
- OS X Status Bar Application with a title in two lines :它在目标 C 中,我也无法让它工作
- How to show two row of text in a menu bar app in mac os:不幸的是,解释对我来说不够详细
【问题讨论】:
标签: swift macos cocoa nsview nsstatusbar