【发布时间】:2019-09-06 15:42:51
【问题描述】:
我一直在尝试创建一个通常在文本编辑器和程序中具有的“撤消”功能。我已经做了某种“撤消”功能,但它一次只删除 1 个字母,这不是我的目标。我想要一次删除整个单词的东西。
我在 TextBox 上使用了GetPropertyChangedSignal,我在其中输入了文本并将字符串存储在其中,然后每当玩家按下 ctrl + z 时,我首先将文本框的文本设置为表格的最后一个值,然后删除最后一个值。
这是我使用的代码(不准确,变量当然不同):
local Tab = {};
Box:GetPropertyChangedSignal("Text"):Connect(function()
Tab[#Tab + 1] = Box.Text;
end);
game:service'Players'.LocalPlayer:GetMouse().KeyDown:Connect(function(key)
if key == "z" then -- i will add a ctrl check later.
Box.Text = #Tab > 0 and Tab[#Tab] or "";
Tab[#Tab] = nil;
end;
end);
正如我之前提到的,我希望它一次删除整个单词。
我正在考虑使用模式匹配(string.gsub、string.match、%s+、%w+)一次删除整个单词。
就我所知。非常感谢您的帮助。
【问题讨论】:
-
可能重复 [Undo/Redo implementation] stackoverflow.com/questions/3583901/… 只需在任何网络搜索中输入文本编辑撤消实现,您就会发现大量资源