我创建了一个没有核心数据的应用程序。 该应用程序有很多功能,例如用手势,颜色和文本操纵视图。是否可以在没有核心数据的情况下使用NSUndoManager?
我想要做的是使用撤消和重做功能。
我读了关于核心数据和NSUndoManager的一切,我有问题要理解它,因为我所做的一切...都不起作用。
我的问题是:是否有可能使用NSUndoManager没有核心数据?
而且:我怎样才能实现对视图的撤销?
一次操作可以改变 我的对象称为aView(UIImageView的)我在UndoManager的注册信息
编辑
- (IBAction)rotationDetected:(UIRotationGestureRecognizer *)gestureRecognizer {
static CGFloat initialRotation;
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){
initialRotation = atan2f(gestureRecognizer.view.transform.b, gestureRecognizer.view.transform.a);
}
CGFloat newRotation = initialRotation + gestureRecognizer.rotation;
aView.transform = CGAffineTransformMakeRotation(newRotation);
//undo
[self.undoManager registerUndoWithTarget:self selector:@selector(rotationDetected:)object:aView];
[self.undoManager setActionName:NSLocalizedString(@"viewChanged",@"title undo")];
}
,并说明这是由一个点击的按钮叫Undo方法这里:
-(void)undo: (id) sender{
[aView.undoManager undo];
[[self undoManager] undo];
}
如果我插入一个if子句询问是否undoManag er.canUndo == YES,它返回的是撤消管理器无法撤销。
这意味着撤消管理器是零,但为什么? 我错过了什么吗?
谢谢。我编辑了我的帖子.. – Studie
只是代码是不够的 - 你需要说你会发生什么,发生了什么。发布允许查看问题的正确代码片段的技巧很好。 – occulus
你有没有把NSLogs看到什么叫什么时候? – occulus