好的,所以我有一个带有 UITextView 的应用程序,我想展示标准的撤消行为。我在这个网站以及 Apple Developer Docs 上搜索了很多教程和答案,但我不明白为什么我制作的东西不起作用。
每当 UITextView 被修改(我使用的是使用 textView.inputView 属性的非标准键盘)时,下面的方法都会传递一个字符串,该字符串是文本视图所需的新文本:
- (void)setText:(NSString*)text{
NSString *oldText = [textView.text mutableCopy];
if (text != oldText) {
[undoManager registerUndoWithTarget:self selector:@selector(setText:) object:oldText];
textView.text = text;
}
}
然后在按下 UIButton 时实现撤消
[undoManager undo];
被执行。
我已经在我的头文件中声明了 undoManager 使用
NSUndoManager *undoManager;
并在我的实现中合成了它,但是当我按下撤消 UIButton 时没有任何反应,并且永远不会调用 setText。我哪里错了?