undo-redo相关内容

在 iOS 中使用多点触控绘图撤消

我在写作时使用多点触控,所以基本上我正在做的是,我在用手支持写作,因为通常,它是如何用户权限的,我点击了这个链接 如何忽略多点触控序列中的某些 UITouch 点 一切正常,但是当我用手触摸屏幕书写时,它们的撤消有些问题,否则它工作正常. 下面是我的代码 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{U ..
发布时间:2022-01-23 10:36:17 移动开发

我们在 Fabric.js 中有画布修改事件吗?

在 Fabric.js 中,我们有对象修改事件,例如 object:modified.整个画布是否有类似的事件. 实际上我正在尝试实现撤消和重做功能.如果画布上发生任何事情,我会将画布保存为 JSON,然后再次加载以进行撤消功能. 对于 Fabric.js 中的这个特性,我们有什么更好的解决方案吗? 解决方案 不要忘记检查添加/删除的对象.你可以这样实现它: var canv ..
发布时间:2022-01-17 11:50:07 其他开发

Undo Redo 实施的最佳实践

我需要为我的窗口应用程序(类似 powerpoint 的编辑器)实现撤消/重做框架,应该遵循的最佳实践是什么,如何处理我的对象的所有属性更改以及它在 UI 上的反映. 解决方案 有两种经典模式可以使用.第一个是 memento 模式,用于存储完整对象状态的快照.这可能比命令模式更加系统密集,但它允许非常简单地回滚到较旧的快照.您可以将快照存储在磁盘上,例如 PaintShop/PhotoS ..
发布时间:2022-01-16 20:04:36 C#/.NET

QDataWidgetMapper;将 TableWidget 映射到模型

我没有找到任何文档显示 QDataWidgetMapper 实际适用于哪些小部件,也没有找到任何使用 QTableWidget 进行映射的实现. 它绝对适用于 QLineEdit 和 QComboBox,它们是输入小部件,但是否可以映射到 QTableWidget? 目标是在添加到 QUndostack 时使用 QUndoStack 撤消/重做每个小部件中的文本更改.我希望能够撤消/重 ..

用于实现 UNDO 和 REDO 选项的数据结构

我想实现 UNDO 和 REDO 选项(正如我们在 MS word 等中看到的).你能给我推荐一个数据结构吗,我该如何实现它.? 解决方案 它不是一种数据结构,而是一种设计模式.您正在寻找命令模式. 标准是将Command对象保持在一个堆栈中以支持多级撤消.为了支持重做,第二个堆栈会保存您已撤消的所有命令.因此,当您弹出撤消堆栈以撤消命令时,您将弹出的命令推送到重做堆栈中.当你重做一 ..
发布时间:2021-12-22 08:10:32 其他开发

如何将 UIGestureRecognizer 添加到 UIBarButtonItem 中,就像 iPad 应用程序上的常见撤消/重做 UIPopoverController 方案一样?

问题 在我的 iPad 应用程序中,我无法在按住事件后仅将弹出框附加到按钮栏项目.但这似乎是撤消/重做的标准.其他应用程序如何做到这一点? 背景 我的 UIKit (iPad) 应用程序的工具栏中有一个撤消按钮 (UIBarButtonSystemItemUndo).当我按下撤消按钮时,它会触发它的操作,即撤消:,并且正确执行. 然而,iPad 上撤消/重做的“标准 UE ..

如何将 IntelliJ(也是 Android Studio)重做快捷键配置为 CTRL+Y 而不是 CTRL+SHIFT+Z?

默认的 IntelliJ/Android Studio“重做"操作快捷键是 CTRL+Shift+Z,这是 Windows 用户的常见问题. 一个更大的问题是 CTRL+Y 被映射到“删除行"操作 - 这会导致撤销堆栈丢失. 要解决这个问题,如何在IntelliJ中将“Redo"快捷键改为CTRL+Y? 解决方案 打开Settings(按CTRL+ALT+S) 点击左 ..
发布时间:2021-11-21 20:26:39 Android

在 WPF 中撤消/重做集合

我有一个简单的 WPF 屏幕,带有 DataGrid 和一些用于剪切、复制、粘贴和删除行的按钮: 我想为所有操作实现 Undo/Redo 功能,例如剪切/复制/粘贴/添加/删除等.我愿意使用另一个集合控件而不是 DataGrid 如果它们提供了一些优于其他的好处.我已经在 stackoverflow.com 上解决了一些关于同一主题的其他问题,但发现它们没有用. 解决方案 我认为使用 ..
发布时间:2021-09-29 18:37:09 C#/.NET

使用 Vim 的持久撤销?

Vim 7.3 中的一项新功能是“持久撤消",它允许在退出缓冲区时将撤消树保存到文件中. 不幸的是,我还没有完全能够正确启用它,或者我一定是用错了它.这是我迄今为止尝试过的: 我将以下内容添加到 ~/.vimrc set undofile " 文件关闭后保存撤销set undodir=$HOME/.vim/undo " 保存撤销历史的位置set undolevels=1000 " 撤 ..
发布时间:2021-09-17 20:44:09 其他开发

扩展 Swing's UndoManager 以提供重复和多次撤销/重做

我的任务是向应用程序添加撤消/重做/重复功能.我目前正在调查是否可以使用 Swing 的 UndoManager. 除了通常的撤消和重做按钮外,我需要提供一次撤消或重做多个编辑的功能(像 MS Office 那样的下拉 UI),并重复选择的编辑. 我相信我可以使用 UndoManager 进行多次撤销和重做.它提供了多次撤销和重做的方法.为了构建 UI,我可以扩展 UndoManage ..
发布时间:2021-09-02 20:03:29 Java开发

使用堆栈实现撤消/重做方法

我想使用堆栈(而不是摆动)创建“撤消"和“重做"按钮. 单击“撤消"后,文本字段、列表和所有内容都需要撤消/重做.我知道我必须使用 pop、push 等.但是我在堆栈中放了什么?文本字段值?列出内容? 示例: 我在一所学校注册了一名学生. 文本字段中的学生信息已更改 学生列表包含新学生 如何重置这些? 有没有办法只在堆栈中存储项目数据的当前状态? 解决方案 ..
发布时间:2021-08-28 18:40:04 Java开发

带有 accepts_nested_attributes_for 的 Paper_trail

我有一个包含文章的 rails 应用程序,用户可以将链接和评论添加为嵌套属性. 我在 paper_trail https://github.com/airblade/paper_trail/ 文档中看到这不是那颗宝石所涵盖的.我将如何设置撤消功能,以便在用户单击撤消时恢复/更新嵌套属性或 has_many 关联? 解决方案 我认为,如果您将“销毁"帖子连接到撤消按钮,它至少会删除链接 ..
发布时间:2021-07-13 19:16:37 其他开发

在html/javascript中要求撤消/重做事件

我有一个交互式html5画布内容,有时用户会希望撤消其操作.我已经实现了执行该操作的逻辑,但是我不确定如何正确捕获“用户要撤消"事件. 目前,我只是听键盘事件,并将"CTRL + Z"解释为撤消请求,如下所示: document.addEventListener("keydown",e => {const Z_KEY = 90;let isUndo = e.keyCode == Z_KE ..
发布时间:2021-05-14 21:00:35 前端开发

如何在不弄乱编辑历史的情况下使用JavaScript将文本插入文本区域?

基本上我想要的是,如果用户在文本区域中选择了一些文本,然后按ctrl + b,则所选内容中的文本应被星号包围. 所以基本上我想要的是: 1)textarea内容:“您好,这是一些文本" 2)用户选择一些文本,然后按ctrl + b“您好是一些文本"(假设加粗部分是文本选择) 3)所以我希望textarea内容为:“你好,这是一些文字" 4),如果用户按ctrl + z ..
发布时间:2021-05-14 20:43:31 前端开发

是否可以使用javascript编辑文本输入并将其添加到“撤消"堆栈中?

是否可以使用javascript编辑 input 或 textarea 的内容,并使用浏览器的“撤消"命令撤消更改(例如 ctrl-Z )? 我正在尝试将一个字符串(例如"Foo {0} bar")插入所选内容中的值,并且如果用户选择了一个范围,则将所选范围插入到字符串中,以代替"{0}". 例如,如果文本区域包含"Example 1 2 3",并且光标位于"Example 1 | 2 ..
发布时间:2021-05-09 18:58:44 前端开发

WPF RichTextBox TextChanged事件-如何查找已删除或已插入的文本?

在使用RichTextBox创建自定义编辑器时,我遇到的问题是使用TextChanged事件查找带有已提供信息的已删除/插入的文本。 TextChangedEventArgs 有一些有用的数据,但我想它不能满足所有需求。假设插入了多个段落,并且同时删除了所选文本(其本身跨越了多个段落)。 对于TextChangedEventArgs实例,您有一组文本更改,并且每个更改仅为您提供已删除或 ..
发布时间:2020-10-27 22:06:50 其他开发

如何在Android Studio中增加撤消和重做步骤

如何在android studio中增加undo和redo步骤? 数量有限,我想增加Ctrl Z次. 解决方案 按 Ctrl + Shift + A 并进入输入操作菜单. 键入注册表,您可以在列表中看到注册表的建议,然后单击. 现在只需输入单词撤消.它会自动为您找到“撤消"选项. 默认情况下, documentUndoLimit = 100 和 globalUndoLi ..
发布时间:2020-08-29 00:54:03 移动开发