UITextView 和 NSUndoManager 同步
Posted
技术标签:
【中文标题】UITextView 和 NSUndoManager 同步【英文标题】:UITextView and NSUndoManager synchronisation 【发布时间】:2011-06-21 14:48:26 【问题描述】:我已尝试先搜索,但找不到我需要的确切内容。
我有一个 UITextView,并且我有按钮在 UITextViews NSUndoManager 上执行撤消和重做操作,因此该部分可以正常工作,但问题来了。撤消操作正在撤消我在文本视图成为第一响应者后创建的所有更改,因此能够进行详细的撤消或重做操作,这些操作仅撤消或重做最后一个操作,而不是从 UITextView 成为第一响应者的那一刻起执行的所有操作我应该有这样的代码:
- (void)textViewDidChange:(UITextView *)textView
[textView resignFirstResponder];
[textView becomeFirstResponder];
但此代码不是解决方案,它可以工作,但我想以与上面代码相同的方式同步 UITextView 中执行的操作,但不将 UITextView 作为第一响应者。
Tnx 寻求帮助。
【问题讨论】:
【参考方案1】:如果我没有错,每个撤消/重做操作都按事件循环分组。如果你在同一个事件循环中做很多事情,所有这些事情都会形成同一个动作。
【讨论】:
是否可以在每次更改文本时创建新的事件循环? 你使用的是textView自带的NSUndoManagermyUndoManager = [textView undoManager];
吗?
是的,我是。也许改用 NSInvocations 试试?!以上是关于UITextView 和 NSUndoManager 同步的主要内容,如果未能解决你的问题,请参考以下文章
UITextView 解决字数限制问题和placehorder问题