I've been trying to make a (RELATIVELY!) simple ScreenGui for making scripts and running them in-game via loadstring. I've mainly been working on the script to add/delete lines, and I'm having trouble deleting them. So, I make some random lines swiping my fingers on the keyboard and spamming enter. Then, I pause. I'm on maybe line 12 or so. The current line says "asdf". I press backspace four times, and rather than emptying the line, the script deletes the line and leaves the line above it blank. That's not what I want, I just want to clear up the line. How do I prevent this?
Script:
lineframe = script.Parent.Parent
CurrentLine = script.Parent
CurrentLineNumber = tonumber(string.sub(script.Parent.Name, 5))
NewLineNumber = CurrentLineNumber + 1
InputService = game:GetService("UserInputService")
script.Parent.FocusLost:connect(function(enter)
if enter then
for i = NewLineNumber, #lineframe:GetChildren() do
lineframe["Line"..i].Name = "Line"..i + 1
lineframe["Line"..i + 1].Position = UDim2.new(0, 0, 0, i * 20)
end
local newline = Instance.new("TextBox", lineframe)
newline.Name = "Line"..NewLineNumber
newline.Size = UDim2.new(0, 400, 0, 20)
newline.Position = UDim2.new(0, 0, 0, CurrentLineNumber * 20)
newline.BackgroundColor3 = Color3.new(1, 1, 1)
newline.Font = Enum.Font.SourceSans
newline.FontSize = Enum.FontSize.Size24
newline.TextXAlignment = Enum.TextXAlignment.Left
newline.Text = ""
local linescript = script:Clone()
linescript.Parent = newline
newline:CaptureFocus()
end
end)
CurrentLine.Focused:connect(function()
InputService.InputBegan:connect(function(input)
if input.KeyCode == Enum.KeyCode.Backspace and CurrentLine.Name ~= "Line1" and CurrentLine.Text == "" then
lineframe["Line"..CurrentLineNumber - 1]:CaptureFocus()
for i = NewLineNumber, #lineframe:GetChildren() do
lineframe["Line"..i].Name = "Line"..i - 1
end
CurrentLine:Destroy()
end
end)
end)
Hierarchy: http://imgur.com/iyvwtDo
