How to clear/empty pasteboard on viewWillDisappear

I use UIPasteboard to copy/paste text between two UITextView.

Code looks like this:

  • Resource files not updating with Xcode 5
  • How to have a handler to repeat UIView animateWithDuration?
  • UICollectionView Performing Updates using performBatchUpdates
  • iOS Safari Mobile doesn't trigger pageshow firing only once
  • No Way to Set Initial View Controller in New Storyboard in Xcode 6
  • How do I hide/show the right button in the Navigation Bar
  • - (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");

    And even this cant help (NSLog returns: pasteb2 (null))

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

    3 Solutions Collect From Internet About “How to clear/empty pasteboard on viewWillDisappear”

    iOS – UIPasteboard

    Try the following:

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

    Arab_Geek’s response is correct but available for Cocoa (and I suspect you are looking for an iOS solution)

    OS X – NSPasteboard

    Here you go ..

    NSPasteboard *pb = [NSPasteboard generalPasteboard];
    [pb declareTypes: [NSArray arrayWithObject:NSStringPboardType] owner: self];
    [pb setString: @"" forType: NSStringPboardType];

    Setting the value to "" will return nil for all intended purposes. It will, however, leave the pasteboard in a slightly different state as before a paste operation.


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

    …is not equivalent to UIPasteboard.removePasteboardWithName(). If restoring the UIPasteboard state is of concern(1), you can use the following block:


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

    (1) Restoring state.