Я пытаюсь изучить 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
Любая помощь будет принята с благодарностью.