Sono bloccato qui. So come copiare e incollare sul lato iPhone delle cose, ma come posso copiare il contenuto da un campo di testo negli appunti globali in OSX. Ho cercato sul web ma non ci sono davvero esempi. Quindi lascia che ti spieghi in dettaglio cosa sto cercando di realizzare. Ho un NSTextField denominato helloField e voglio essere in grado di copiare il contenuto di questo helloField sul tavolo di montaggio globale premendo un pulsante. Come può essere fatto e ci sono alcune librerie di cui ho bisogno? Grazie.Come copiare textField negli appunti OSX?
12
A
risposta
45
Su iOS
[UIPasteboard generalPasteboard].string = helloField.text;
su OSX
[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] setString:helloField.stringValue forType:NSStringPboardType];
su MacOS 3.x Swift
let pasteBoard = NSPasteboard.general()
pasteBoard.clearContents()
pasteBoard.writeObjects([text as NSString])
2
codice per copiare una stringa negli Appunti:
[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] setString:copiedString forType:NSPasteboardTypeString];
NSStringPboardType
obsoleto. C'è una nota in NSPasteboard.h
su pboard
tipi:
L'utilizzo di tipi pboard dovrebbe essere sostituito con l'uso di infezioni del tratto urinario. I tipi di pboard saranno deprecati in una versione futura.
anche nel file di intestazione:
APPKIT_EXTERN NSString * const NSPasteboardTypeString NS_AVAILABLE_MAC (10_6); // Sostituisce NSStringPboardType
...
APPKIT_EXTERN NSString * NSStringPboardType; // Usa NSPasteboardTypeString
0
per il cacao in MacOS Swift 3:
let pasteBoard = NSPasteboard.general()
pasteBoard.clearContents()
pasteBoard.setString("something", forType: NSPasteboardTypeString)
appena capito (su MonoMac per OS X) che il 'clearContents' è necessario, altrimenti il' setString' non riesce e restituisce ' FALSE. –
È necessario omettere le parentesi sulla prima riga nell'implementazione di Swift: lasciare pasteBoard = NSPasteboard.general – Aarhus88