2010-01-26 6 views
0

J'ai lu le chapitre sur annuler/rétablir dans le livre Hillegass. Il ne va que sur les applications basées sur des documents. J'utilise à peu près le même code que dans le livre, mais je reçois "appController peut ne pas répondre à -undoManager" lorsque j'utilise le code ci-dessous. Je sais que je dois créer un gestionnaire d'annulation explicitement, mais exactement comment je fais cela. S'il vous plaît donnez-moi une explication étape par étape. Merci.Problème avec NSUndoManager

- (void) insertObject: (comptes *) currentAccount inArrayOfAccountsAtIndex: (int) {index NSLog (@ "Ajout% @% @ à", currentAccount, arrayOfAccounts);

NSUndoManager *undo = [self undoManager]; 

[[undo prepareWithInvocationTarget:self] 
    removeObjectFromArrayOfAccountsAtIndex: index]; 
if(![undo isUndoing]){ 
    NSLog(@"After the if(![undo isUndoing]) statement"); 
    [undo setActionName:@"Insert Account"]; 
} 

[arrayOfAccounts insertObject:currentAccount atIndex:index]; 
} 

Répondre

2

Je suppose qu'il manque l'initialisation de l'Undo-Manager.

Essayez

NSUndoManager *undoManager; 

au début de votre classe et

undoManger = [NSUndoManager alloc] init]; 

dans l'initialisation de votre classe (par exemple dans "viewDidLoad").

Questions connexes