在目标 C 中使用撤消功能的多个操作



我有一个撤消功能,谁工作得很好。我的应用程序是一个具有多种效果的照片编辑器。当我为我的照片添加多种效果并撤消所有这些效果时,它的效果非常好,但是当我想再次添加滤镜/效果并且我想再次撤消时,它不起作用。我的意思是我的撤消功能只工作一次。

有人可以告诉我为什么它只工作一次吗?

有我的职能谁工作:

- (无效(更新图像:(UIImage*(图像 { [undoManager registerUndoWithTarget:self selector:@selector(updateImage:( object:Images]; _imageView.图像 = 图像; } - (无效(推送UndoBtn:(id(sender {  [撤消管理器撤消]; }

我是如何引用我的撤消管理器的:

@implementation _CLImageEditorViewController { NSUndoManager * undoManager; } - (空(视图加载 { [超级视图确实加载]; undoManager = [[NSUndoManager alloc] init]; }

你应该把旧图像(_imageView.image(传递给-registerUndoWithTarget:selector:object:,而不是新图像(Images(。您希望撤消操作调用旧映像的-updateImage:以还原旧状态。所以:

[undoManager registerUndoWithTarget:self selector:@selector(updateImage:) object:_imageView.image];

相关内容

  • 没有找到相关文章

最新更新