2010-09-07 22 views
12

Burada sıkışıp kaldım. Ben şeyler tarafında iPhone kopyalamak ve yapıştırmak biliyorum ama nasıl bir textField içeriği OSX içinde genel panoya kopyalayabilirsiniz. Web'de arama yaptım ama gerçekten örnek yok. O halde ne yapmaya çalıştığımı ayrıntılı olarak açıklayayım. HelloField adında bir NSTextField'ım var ve bu helloField'ın içeriğini bir düğmeye basarak genel çalışma panosuna kopyalamak istiyorum. Bu nasıl yapılabilir ve ihtiyacım olan bazı kütüphaneler var mı? Teşekkürler. iOS'daTextField OSX panosuna nasıl kopyalanır?

cevap

45

[UIPasteboard generalPasteboard].string = helloField.text; 

panoya bir dize kopyalamak için

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

, aksi' setString' 'başarısız olur ve iadeler FALSE. –

+0

Swift uygulamasında parantezleri ilk satırda atlamalı: pasteBoard = NSPasteboard.general olsun – Aarhus88

2

Kanunu OSX

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

Açma ve Swift 3.x:

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

NSStringPboardType kullanımdan kaldırılmıştır. pboard türlerinden

Kullanım İYE kullanımı ile değiştirilmelidir: NSPasteboard.h yaklaşık pboard tiplerinde bir not var. Pboard türleri, gelecekteki bir sürümde kullanımdan kaldırılacaktır. başlık dosyası da

:

APPKIT_EXTERN NSString * const NSPasteboardTypeString NS_AVAILABLE_MAC (10_6); // NSStringPboardTypeType
değiştirir ...
APPKIT_EXTERN NSString * NSStringPboardType; // Kullanım NSPasteboardTypeString

Swift 3 Kakao MacOS
0

:

Sadece `clearContents` gerekli olduğunu (OS X için MonoMac üzerine) anladım
let pasteBoard = NSPasteboard.general() 
pasteBoard.clearContents() 
pasteBoard.setString("something", forType: NSPasteboardTypeString)