2012-06-16 2 views
6

J'utilise UIPasteboard pour copier/coller du texte entre deux UITextView.Comment effacer/vider le tableau sur viewWillDisappear

code ressemble à ceci:

- (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"); 
    } 
} 

Et même cette aide cative (NSLog retourne: pasteb2 (null))

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

Répondre

19

iOS - UIPasteboard

les opérations suivantes:

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

La réponse de Arab_Geek est correcte mais disponible pour le cacao (et je soupçonne que vous êtes à la recherche d'une solution iOS)

+0

Merci beaucoup! –

+1

Merci pour votre réponse. Si quelqu'un veut une seule longue ligne moche: '[[UIPasteboard generalPasteboard] setValue: @" "pourPasteboardType: UIPasteboardNameGeneral];' –

3

OS X - NSPasteboard

vous allez ici ..

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

malheureusement, il se méprend "NSStringPboardType". En outre, NSPasteboard n'existe pas. –

+0

@ Sheonna8 #import <- ajoutez ceci à votre fichier .m –

+0

trued, écrit pas trouvé (j'ai également essayé de trouver le cadre - échoué) –

2

Réglage de la valeur à "" sera retourner nil pour toutes les fins prévues. Il laissera cependant le carton dans un état légèrement différent, comme avant une opération de collage.

Swift

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

... n'est pas équivalent à UIPasteboard.removePasteboardWithName(). Si la restauration de l'état UIPasteboard est préoccupant (1), vous pouvez utiliser le bloc suivant:

Swift

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) Restauration de l'état.

Questions connexes