我正在尝试在业余时间学习 Swift,并开始了一个小型项目来尝试和有目的地学习。我正在尝试创建一个 MacOS 应用程序,该应用程序在菜单栏上显示剪贴板的前 10 个字符。
我取得了一些成功,我设法让应用程序显示剪贴板内容,但是它只能工作一次;如果剪贴板内容发生变化,它不会更新。
我发现使用ChangeCount我可以跟踪剪贴板,但是我现在陷入了如何构造代码以更新菜单栏的问题。
到目前为止,这是(相关的)代码:
timer = Timer.scheduledTimer(withTimeInterval: 0.05, repeats: true) { (t) in
if self.lastChangeCount != self.pasteboard.changeCount {
}
}
var clipboardItems: [String] = []
for element in pasteboard.pasteboardItems! {
if let str = element.string(forType: NSPasteboard.PasteboardType(rawValue: "public.utf8-plain-text")) {
clipboardItems.append(str)
}
}
let ClipboardItem = String(clipboardItems[0].prefix(10)) // Gets 10 chars of first item
let statusBar = NSStatusBar.system
statusBarItem = statusBar.statusItem(
withLength: NSStatusItem.variableLength)
statusBarItem.button?.title = ClipboardItem
任何帮助将非常感激。