用NSManager撤销剪贴板文本



我正在用UITextView控件实现NSUndoManager。如果我想撤销上次修改的文本,我可以用

// NSUndoManager *myUndoManager;  Declared in the header
if (myUndoManager.canUndo) {
    [myUndoManager undo];
}

这很简单。但是,如果我像下面这样将剪贴板文本插入TextView控件,myUndoManager。canUndo为空

textview1.text = [[UIPasteboard generalPasteboard] string];

当使用剪贴板文本时,我是否可以撤销文本更改?

谢谢你的帮助。

我想我只需要手动添加文本到堆栈。

- (IBAction)goClicked1:(id)sender {
    NSString *pastetext = [[UIPasteboard generalPasteboard] string];
    [self setText:pastetext];
}
- (void)setText:(NSString *)str {
    NSUndoManager *undoManager = [self undoManager];
    NSString *oldtext = textview1.text;
    [[undoManager prepareWithInvocationTarget:self] setText:oldtext];
    textview1.text = str;
}

相关内容

  • 没有找到相关文章

最新更新