2012-06-16 19 views
6

Yo uso UIPasteboard para copiar/pegar texto entre dos UITextView.Cómo borrar/vaciar el cartón en la vista Vaciar 0isarpear

código es el siguiente:

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

Y aun esto no puede ayuda (NSLog devuelve: pasteb2 (null))

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

Respuesta

19

IOS - UIPasteboard

intente lo siguiente: la respuesta

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

de Arab_Geek es correcta, pero disponible para Cacao (y sospecho que busca una solución IOS)

+0

¡Muchas gracias! –

+1

Gracias por responder. Si alguien quiere una única línea fea larga: '[[UIPasteboard generalPasteboard] setValue: @" "forPasteboardType: UIPasteboardNameGeneral];' –

3

OS X - NSPasteboard

Aquí tienes ..

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

desafortunadamente no entiende "NSStringPboardType". Además, NSPasteboard no existe. –

+0

@ Sheonna8 #import <- agregue esto a su archivo .m –

+0

true, escribe no encontrado (también traté de encontrar framework - fracasado) –

2

establece el valor en "" se devuelva nil para todos los fines previstos. Sin embargo, dejará el portapapeles en un estado ligeramente diferente al de antes de pegar.

Swift

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

... no es equivalente a UIPasteboard.removePasteboardWithName(). Si el restablecimiento del estado UIPasteboard es motivo de preocupación (1), puede utilizar el siguiente bloque:

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] 

estado (1) Restauración.