Хорошо, я хочу добавить возможность отмены определенных действий в моем приложении.Я собирался создать способ сделать это, используя мои собственные протокалы или что-то еще, но потом я узнал о NSUndoManager
.Я хотел бы использовать встроенный способ основания, но я не могу понять это.Мне нужно отменить несколько бросков костей, поэтому, если бы я мог сохранить предыдущие броски, как объекты в NSArray
, вероятно, будет лучшим.Я мог бы использовать NSMutableString
, но массив был бы более предпочтительным.
Тогда я знаю, что вы можете встряхнуть, чтобы отменить, но я бы предпочел кнопку.Это доставляет мне больше всего хлопот.Я включил мои попытки ниже.Ни один из тех не работал.Любая помощь будет оценена.
В viewDidLoad:
undoManager = [[NSUndoManager alloc] init];
Затем в методе, который бросает кости, я попытался:
[[undoManager prepareWithInvocationTarget:self] undoButton];
[[undoManager prepareWithInvocationTarget:self]
[[undoManager prepareWithInvocationTarget:self] setString:[NSString stringWithFormat:@"%i", dice1num]];
setStrings:[NSArray arrayWithObjects:[NSString stringWithFormat:@"%i", dice1num]
[NSString stringWithFormat:@"%i", dice1num],
[NSString stringWithFormat:@"%i", dice1num],
[NSString stringWithFormat:@"%i", dice1num],
[NSString stringWithFormat:@"%i", dice1num], nil]];
[[undoManager prepareWithInvocationTarget:@selector()];
[undoManager setActionName:@"A roll"];
И вот здесьIBAction, который ссылается на кнопку отмены:
-(IBAction)undoButton{
[undoManager undo];
}
Заранее спасибо