Я восторженный 16-летний программист, и сейчас я работаю над приложением, простым, у которого есть только кнопка, которая добавляет 1 к целому числу и отображает ее на ярлыке, & Я хотел бы добавить кнопку отмены. Я исследовал NSUndoManager, который должен помочь. Дело в том, что я не могу заставить его работать! Этот вопрос может показаться очевидным, но я узнал все, что знаю с youtube, и поэтому не знаю много чего. Это мой код:NSUndoManager Disaster
@implementation ViewController
NSUndoManager *undoManager;
-(IBAction)add1:(id)sender{
Count = Count + 1;
Counter.text = [NSString stringWithFormat:@"%i", Count];
[undoManager prepareWithInvocationTarget:self];
[undoManager registerUndoWithTarget:self selector:@selector(add1:) object:Counter.text];
[undoManager setActionName:NSLocalizedString(@"actions.update", @"Update Score")];
}
-(IBAction)Undo:(id)sender{
[undoManager undo];
Counter.text = [NSString stringWithFormat:@"%i", Count];
}
- (void)viewDidLoad {
Count = 0;
undoManager =[[NSUndoManager alloc]init];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Когда вы отвечаете, пожалуйста, постарайтесь не сказать очень технические слова, или, если вы определите их, потому что, как я уже говорил, я не знаю много вещей, и я не мог бы понять, что вы говорите, и я серьезно хочу это узнать. Пример кода моего приложения, но с правильно запрограммированным NSUndoManager, был бы замечательным, поэтому я могу сравнить его и выяснить, каковы мои ошибки.
Спасибо!
Объясните, что на самом деле происходит, когда вы отменяете, и как вы запускаете отмену. – Wain
Попробуйте поместить три строки кода для вашего 'undoManager' из вашего метода' add1' в ваш метод жизненного цикла 'viewDidLoad', после того как вы выделите/'undoManager'. Это помогает? – andrewbuilder
Как это сделать? Возможно, пример кода поможет. –