【问题标题】:UITextView and NSUndoManager synchronisationUITextView 和 NSUndoManager 同步
【发布时间】:2011-06-21 14:48:26
【问题描述】:

我已尝试先搜索,但找不到我需要的确切内容。

我有一个 UITextView,并且我有按钮在 UITextViews NSUndoManager 上执行撤消和重做操作,因此该部分可以正常工作,但问题来了。撤消操作正在撤消我在文本视图成为第一响应者后创建的所有更改,因此能够进行详细的撤消或重做操作,这些操作仅撤消或重做最后一个操作,而不是从 UITextView 成为第一响应者的那一刻起执行的所有操作我应该有这样的代码:

- (void)textViewDidChange:(UITextView *)textView
{
    [textView resignFirstResponder];
    [textView becomeFirstResponder];
}

但此代码不是解决方案,它可以工作,但我想以与上面代码相​​同的方式同步 UITextView 中执行的操作,但不将 UITextView 作为第一响应者。

Tnx 寻求帮助。

【问题讨论】:

    标签: objective-c uitextview nsundomanager


    【解决方案1】:

    如果我没有错,每个撤消/重做操作都按事件循环分组。如果你在同一个事件循环中做很多事情,所有这些事情都会形成同一个动作。

    【讨论】:

    • 是否可以在每次更改文本时创建新的事件循环?
    • 你使用的是textView自带的NSUndoManagermyUndoManager = [textView undoManager];吗?
    • 是的,我是。也许改用 NSInvocations 试试?!
    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2016-05-21
    • 2023-03-25
    相关资源
    最近更新 更多