2010-09-07 16 views
12

Utknąłem tutaj. Wiem, jak kopiować i wklejać na stronie iPhone rzeczy, ale jak mogę skopiować zawartość z textField do globalnego schowka w OSX. Szukałem w Internecie, ale tak naprawdę nie ma przykładów. Pozwól mi wyjaśnić szczegółowo, co próbuję osiągnąć. Mam NSTextField o nazwie helloField i chcę móc skopiować zawartość tego helloField do globalnej tablicy, naciskając przycisk. Jak to zrobić i czy są tam pewne biblioteki, których potrzebuję? Dzięki.Jak skopiować textField do schowka systemu OSX?

Odpowiedz

45

iOS

[UIPasteboard generalPasteboard].string = helloField.text; 

Na OSX

[[NSPasteboard generalPasteboard] clearContents]; 
[[NSPasteboard generalPasteboard] setString:helloField.stringValue forType:NSStringPboardType]; 

na MacOS i Swift 3.x

let pasteBoard = NSPasteboard.general() 
pasteBoard.clearContents() 
pasteBoard.writeObjects([text as NSString]) 
+1

Tylko zorientowali się (na Monoman dla OS X), że 'clearContents' jest wymagane, w przeciwnym razie nie setString'' 'i powroty FALSE'. –

+0

Należy pominąć nawiasy w pierwszym wierszu w implementacji Swift: let pasteBoard = NSPasteboard.general – Aarhus88

2

Kodeksu skopiować ciąg do schowka:

[[NSPasteboard generalPasteboard] clearContents]; 
[[NSPasteboard generalPasteboard] setString:copiedString forType:NSPasteboardTypeString]; 

NSStringPboardType jest przestarzałe. Jest to notatka w NSPasteboard.h o pboard typów:

użycie typów pboard powinien zostać zastąpiony z wykorzystaniem ZUM. Typy Pboard będą przestarzałe w przyszłej wersji.

także w pliku nagłówka:

APPKIT_EXTERN NSString * const NSPasteboardTypeString NS_AVAILABLE_MAC (10_6); // Zastępuje NSStringPboardType
...
APPKIT_EXTERN NSString * NSStringPboardType; // Użyj NSPasteboardTypeString

0

kakao MacOS w Swift 3:

let pasteBoard = NSPasteboard.general() 
pasteBoard.clearContents() 
pasteBoard.setString("something", forType: NSPasteboardTypeString) 
Powiązane problemy