6

UIPasteboardは2つの間でテキストをコピーして貼り付けるために使用しますUITextView

コードは次のようになります。

- (void)viewDidLoad {
   [super viewDidLoad];
   pasteBoard = [UIPasteboard generalPasteboard]; //it is declared in .h as UIPasteboard *pasteBoard;
}

-(IBAction)doCopyBtn {
    if (![toCopyTextView.text isEqualToString:@""]){
        pasteBoard.string = toCopyTextView.text;
        NSLog(@"pasteb1 %@", pasteBoard.string);
    } else {
        NSLog (@"error! enter smth");
    }
}

-(IBAction)doPasteBtn {
    if (![pasteBoard.string isEqualToString:@""]){ 
        toPasteTextView.text = pasteBoard.string;
        NSLog(@"pasteb2 %@", pasteBoard.string);
    } else {
        NSLog (@"error! enter smth");
    }
}

そして、これでさえ助けにはなりません(NSLogは:)を返しpasteb2 (null)ます

-(void) viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [pasteBoard setString:@""]; 
}
4

3 に答える 3

22

iOS –UIPasteboard

次のことを試してください。

    UIPasteboard *pb = [UIPasteboard generalPasteboard];
    [pb setValue:@"" forPasteboardType:UIPasteboardNameGeneral];

Arab_Geekの応答は正しいですが、Cocoaで利用できます(iOSソリューションを探していると思います)

于 2012-06-26T15:53:02.930 に答える
3

OSX-NSPasteboard

どうぞ ..

NSPasteboard *pb = [NSPasteboard generalPasteboard];
[pb declareTypes: [NSArray arrayWithObject:NSStringPboardType] owner: self];
[pb setString: @"" forType: NSStringPboardType];
于 2012-06-16T23:58:46.840 に答える
2

値をに設定すると、意図したすべての目的で""戻ります。nilただし、貼り付け操作前とは少し異なる状態で厚紙が残ります。

迅速

let pb = self.pasteBoard()
pb.setValue("", forPasteboardType: UIPasteboardNameGeneral)

...はと同等ではありませんUIPasteboard.removePasteboardWithName()。状態の復元UIPasteboardが懸念される場合(1)、次のブロックを使用できます。

迅速

let pb = self.pasteBoard()

let items:NSMutableArray = NSMutableArray(array: pb.items)
for object in pb.items {
    if let aDictionary = object as? NSDictionary {
        items.removeObject(aDictionary)
    }
}
pb.items = items as [AnyObject]

(1)状態の復元。

于 2015-08-27T16:39:33.130 に答える