2013-04-07 2 views
3

J'implémente NSUndoManager avec un contrôle UITextView. Si je veux annuler la dernière modification de texte, je peux le faire avecAnnulation du texte du Presse-papiers avec NSManager

// NSUndoManager *myUndoManager; Declared in the header 

if (myUndoManager.canUndo) { 
    [myUndoManager undo]; 
} 

C'est assez simple. Si, toutefois, j'insère le texte du presse-papiers dans le contrôle TextView comme suit, myUndoManager.canUndo est vide. Est-il possible pour moi d'annuler les modifications de texte lorsque le texte du presse-papiers est utilisé?

Nous vous remercions de votre aide.

Répondre

0

Je suppose que j'ai juste besoin d'ajouter du texte à la pile manuellement.

- (IBAction)goClicked1:(id)sender { 
    NSString *pastetext = [[UIPasteboard generalPasteboard] string]; 
    [self setText:pastetext]; 
} 

- (void)setText:(NSString *)str { 
    NSUndoManager *undoManager = [self undoManager]; 
    NSString *oldtext = textview1.text; 
    [[undoManager prepareWithInvocationTarget:self] setText:oldtext]; 
    textview1.text = str; 
}