【问题标题】:Tracking modified state with NSTextStorage and UNDO使用 NSTextStorage 和 UNDO 跟踪修改状态
【发布时间】:2015-04-11 14:34:21
【问题描述】:

我有一个 NSTextView/NSTextStorage 组合,我想跟踪文本存储的“修改”状态。

我可以简单地观察文本的变化并更新我的 'modifiedDate' 变量 - 问题是我还需要 UNDO 才能工作 - 而且 UNDO 还应该撤消 modifiedDate。

如果我在每次文本更改时更新我的​​ modifiedDate 变量,那么它会起作用 - 但 TextView 上的 UNDO 一次将是一个字符(不可取。)

我确实尝试查找 undoManagerWillCloseUndoGroupNotification 并在那里更新我的 modifiedDate,但我得到了相同的效果(单字符撤消)我认为它可能会在 TextView 撤消组中“滑动”modifiedDate 撤消 - 但它似乎没有。

这是无法完成的事情之一 - 或者很简单 - 有人可以让我摆脱痛苦吗?

谢谢

【问题讨论】:

    标签: macos nstextview undo nstextstorage


    【解决方案1】:

    “解决方案”是在收到 undoManagerDidOpenUndoGroupNotification 时记录我的 modifiedDate(第一响应者是我的 NSTextView)

    需要注意的其他事情是拖放到 NSTextView(当它不是第一响应者时) - 在这种情况下,我发现在 readSelectionFromPasteboard 中将第一响应者设置为我的 NSTextView:覆盖我的 NSTextView 排序的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2010-09-05
      • 2023-01-12
      相关资源
      最近更新 更多