NSUndoManager を使用するのはこれが初めてで、どこに配置すればよいか、何が欠けているのかわかりません。描画ボタンと元に戻すボタンを備えたマップ ビューを持つアプリケーションを作成しています。描画ボタンを使用して、ユーザーがポリラインを描画できるようにし、指が画面から離れるたびに、描画したばかりの線に別の線を接続します。元に戻すボタンで、最後に描いた線を削除したい.
私がこれまでに持っているもののいくつか...
- (void)viewDidLoad
{
[super viewDidLoad];
...
...
undoManager = [[NSUndoManager alloc]init];
}
- (IBAction)oopsButton:(id)sender {
[undoManager undo];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
....
....
[[undoManager prepareWithInvocationTarget:self]touchesEnded:(touches) withEvent:event];
[undoManager setActionName:NSLocalizedString(@"Route Changed", @"route undo")];
}
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
...
...
現在、元に戻すをクリックすると、1 行が元に戻されますが、それだけです。ユーザーがクリックする回数だけ元に戻す必要があります。これについて助けてくれてありがとう、私はグーグルとスタック全体を見てきましたが、まだ役立つものは見つかりませんでした.