NSUndoManager不在iOS中调用选定的方法

好的,所以我有一个带有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。我哪里错了?     
已邀请:
我认为在您的示例中仍然缺少undoManager的初始化。你宣布
NSUndoManager *undoManager;
在你的头文件中,但我没有看到你分配/初始化它的位置。 尝试添加
undoManger = [NSUndoManager alloc] init];
在你,即“viewDidLoad”(或类似)方法。当你不再需要它时,不要忘记释放适当的对象,例如在dealloc中。     

要回复问题请先登录注册