在按下删除按钮后,我看到越来越多提供撤消选项的网站.如何在按钮后面完成逻辑?
是否通过javascript删除了项目并从用户屏幕中删除了"消失"并添加了计划删除,这使用户有时间撤消它或它是如何工作的?
为用户提供撤消功能的其他选项有哪些?
在我的一台开发机器上,我有无限的撤销,我可以抓住你,并在我打开文件时一直回到.
另一方面,按下你在我做的最后两个更改之间切换,不再.
我有管理员访问权限的第一台开发机器,vim安装程序可以免费使用.第二个我没有和vim必须安装在正常的OS路径之外,并且必须使用'Sendto'启动vim.也许这是相关的,我错过了一些rc命令.还注意到我必须运行'syn on'才能在该框上突出显示.vimrc也是空白所以现在我确定它与它有关.
从其他线程我不相信这与持久性撤销功能有关,而只是一个.swp或〜问题(无论这些文件用于什么......)
截止日期已经促使这可能是一个简单的问题.我该如何解决这个问题?
我想在一个小的绘图应用程序中实现undo/redo .似乎命令模式非常适合使用,但我不确定如何最好地实现它.
据我了解的模式,有必要在每个命令中包含:
GeneralPath)我的理解是,每个命令都需要是"原子的"或自包含的,并具有撤消/重做该操作所需的所有信息.
不幸的是,这需要存储比我最初预期更多的信息.对于一条线,我们还必须考虑类似的东西Color,Stroke并且RenderingHints最初用于绘制它.这将我的"简单的小命令"变成了一些东西......在内存中更笨重,并且有更多的样板代码可以生成(每个都是可序列化的bean 1).
出于记忆保护的原因(大多数情况下),我想要"欺骗"命令的规范.也许每100次更新都会备份整个绘图区域,但是不存储已更改图像的任何部分,只需为每次新的绘制操作重建最后(最多)100个命令.但是Graphics在绘制每个零件之前确保对象的状态是正确的似乎是有问题的- 这部分可能需要一条线,但是RenderingHints之前更改了4个命令,之前Color更改了98个命令,而Stroke最后一个保持相同227个命令.
追求更高效的内存命令似乎将模式从"原子"方面抛到了窗外.这反过来导致难以确定可能影响渲染的最早命令.
我是不是该:
Graphics2D(整齐地封装了绘制时使用的许多参数)不可序列化.此外,a BasicStroke 是可序列化的,但不存储笔划的粗细.我可以创建许多属性的可序列化版本,但它似乎会产生更多的代码,所以我将放弃该规范.同样.我只会尝试BufferedImage在运行时存储对引用的引用.我正在编写一个基于QGraphicsScene画布的Qt应用程序,其上有可移动的形状,我正在尝试集成undo-redo功能.对于大多数函数,比如创建和删除形状,在它QGraphicsScene自身上实现它是相当简单的,但我希望元素是可移动的,并且运动是可撤销的.现在我正在使用场景上的橡皮筋拖曳模式ItemIsSelectable和ItemIsMovable项目上的标志.问题是,似乎没有好的地方来创建QUndoCommand表示形状运动.如果我在QGraphicsScene::itemChange方法中执行此操作,则选择并移动两个或更多个形状会导致不同对象的单独撤消命令被交错,因此无法合并,因此撤消会导致意外行为.QGraphicsScene当它的项目被移动时,没有任何事件被调用,我可以看到,所以我有点卡住了.
我看到的最糟糕的情况是我ItemIsMovable在自定义QGraphicsItem对象上禁用了标志并完全在QGraphicsScene鼠标事件中处理移动,但正确地重新实现该功能似乎相当复杂(我检查了Qt如何在内部执行它并且有很多代码用于处理复杂的情况,例如选择对象及其某些子对象的情况.这似乎是撤销堆栈最明显的用例(以至于撤消框架的示例程序QGraphicsScene与我的程序非常相似,除非没有多个对象移动支持)所以看起来很奇怪没有内置的方式在没有重新实现核心功能的重要部分的情况下做到这一点.有没有人有任何见解或程序的例子这样做?
我有一组Word宏,用于格式化从外部源发送到的文档。通常,对文档进行很多更改,所有更改都记录在撤消历史记录中,而我并不想这样做。
有没有一种方法不将所有这些更改都添加到撤消历史中,而是仅添加一个撤消操作来撤消宏已完成的所有操作?谢谢。
我已经实现了撤销/重做标准方式(NSUndoManager),但无法弄清楚当我的应用程序处于特定状态时如何禁用撤消/重做.
用户在我的应用程序中绘制内容,当他们绘制的内容正在上传时,我禁用了UI,当然也不希望用户能够撤消/重做.
我使用NSView的撤销管理器,所以我猜一种方法可能就是让该视图辞职第一响应者.还有另外一种方法吗?
不知怎的,我只是在eclipse(android开发)中按下了一些键或键组合,eclipse突然恢复了我正在处理的文件的先前版本.CTRL Z/Y无济于事.我是否必须再次对文件进行所有更改!
我可以做些什么?我不希望这种情况再发生.我怎么可能继续使用eclipse知道这可能会在某个时候再次发生.
谢谢,
假设我做了3个更改,C1,C2和C3.
然后我撤消X3.然后我重做X3.我回到了我开始的地方.
然后我再次撤消X3,但后来我不小心打字了ifoo<Esc>.我现在可以做些什么来恢复变化#3?
我正在寻找一个命令行电子表格,到目前为止,sc是我最好的发现(我在这条消息的末尾解释了原因).
但缺乏撤销功能正在扼杀我.你如何应对缺乏这个重要的缺失功能? 现在,当我犯错误时,我要么必须手动纠正它; 或者我必须关闭文件而不保存,重新打开它,并重新做所有最近的更改 - 这是一个痛苦; 事实上,它让我只想不使用sc,这是一个耻辱,因为它是唯一似乎做我想做的其他事情的电子表格.
我想出了一个不稳定的解决方案(尚未尝试过):由于F键是可编程的,我可以让其中一个在Git中提交我的电子表格,另一个"撤消"我最近的更改,通过反转到上次提交.也许还有一个要重做.那不太理想,真的......所以我会感激任何更好的主意.
哦,还!sc的另一个缺失特征是社区.没有邮件列表(也没有IRC频道).如果周围有人使用sc,我可能会建立一个邮件列表,以便我们可以交换问题和想法.任何接受者?
附录:为什么sc是迄今为止最好的命令行电子表格:
这里有关于sc的更多信息:
这是Undo功能的Github问题.它被标记为"将需要补丁",并且讨论了可以实现该功能的不同方式.
PS:你可能想要看的另一个命令行电子表格是茶壶,它看起来也很棒(而且还缺少撤销功能).实际上它有sc缺乏的优秀功能,但我个人会用sc来表示Vim键绑定,颜色以及我可以用任何语言编写函数的事实.
PPS:我没有足够的声誉用标签"sc"发布此消息,因此我将其标记为Vim,因为Vim用户可能会对此电子表格感兴趣.
我想知道如何为Xamarin Android创建一个像这样的撤销栏.
我用这个代码由丹Ardelean为Xamarin的Android谁从基本的代码创建罗马Nurik例如针对Android,但它并没有为我工作.我收到这条消息:
无法从本机句柄0x200019(key_handle 0xf9f4bcb)激活SwipeDismissListView.MainActivity类型的实例.--->
System.MissingMethodException: No constructor found for SwipeDismissListView.MainActivity::.ctor(System.IntPtr, Android.Runtime.JniHandleOwnership) ---> Java.Interop.JavaLocationException: Exception of type 'Java.Interop.JavaLocationException' was thrown. --- End of inner exception stack trace --- at Java.Interop.TypeManager.CreateProxy (System.Type type, System.IntPtr handle, Android.Runtime.JniHandleOwnership transfer) [0x00054] in <d855bac285f44dda8a0d8510b679b1e2>:0 at Java.Interop.TypeManager.CreateInstance (System.IntPtr handle, Android.Runtime.JniHandleOwnership transfer, System.Type targetType) [0x00111] in <d855bac285f44dda8a0d8510b679b1e2>:0 --- End of inner exception stack trace --- at Java.Interop.TypeManager.CreateInstance (System.IntPtr handle, Android.Runtime.JniHandleOwnership transfer, System.Type targetType) [0x0017d] in <d855bac285f44dda8a0d8510b679b1e2>:0 at Java.Lang.Object.GetObject (System.IntPtr handle, Android.Runtime.JniHandleOwnership transfer, System.Type …