【发布时间】:2020-05-19 17:26:22
【问题描述】:
有什么方法可以告诉undoManager,在某些情况下,撤消步骤在编辑发生之前就已经提交了吗?
我有一个应用程序可以自动将某些字符串替换为大写对应的字符串。麻烦的是,这必须在textStorage 中自动完成,所以当撤消编辑时,文本仍然是大写的。
我已经为有问题的操作编写了自定义撤消状态,它们是在NSTextView shouldChangeTextInRange 中创建的:
例如:
[[self.undoManager prepareWithInvocationTarget:self]
replaceCharactersInRange:
NSMakeRange(affectedCharRange.location + affectedCharRange.length, string.length + 1) withString:string
];
我希望undoManager 忽略编辑后将收到的撤消步骤。
【问题讨论】:
标签: objective-c macos cocoa nsundomanager