Hello,
I'm looking for some clarification on why this doesn't work.
This correctly reports the value when pressing Escape, but the EditBox shows as empty.
Code:
local criteria_value = CreateFrame("EditBox", nil, panel, "InputBoxTemplate")
criteria_value:SetWidth(40)
criteria_value:SetHeight(19)
criteria_value:SetPoint("LEFT", criteria_label, "RIGHT", 10, 0)
criteria_value:SetAutoFocus(false)
criteria_value:SetMaxLetters(2)
criteria_value:SetScript("OnEscapePressed",
function(self)
criteria_value:ClearFocus()
print("criteria_value:GetText() : " .. criteria_value:GetText())
end)
local function event_handler(self, event, ...)
criteria_value:SetText(WATCHFRAME_CRITERIA_PER_ACHIEVEMENT)
print("criteria_value:GetText() : " .. criteria_value:GetText())
end
panel:RegisterEvent("PLAYER_ENTERING_WORLD")
panel:SetScript("OnEvent", event_handler)
This works.
Code:
local criteria_value = CreateFrame("EditBox", nil, panel, "InputBoxTemplate")
criteria_value:SetWidth(40)
criteria_value:SetHeight(19)
criteria_value:SetPoint("LEFT", criteria_label, "RIGHT", 10, 0)
criteria_value:SetAutoFocus(false)
criteria_value:SetMaxLetters(2)
criteria_value:SetScript("OnEscapePressed",
function(self)
criteria_value:ClearFocus()
print("criteria_value:GetText() : " .. criteria_value:GetText())
end)
criteria_value:SetScript("OnShow", function(self)
self:SetText(WATCHFRAME_CRITERIA_PER_ACHIEVEMENT)
end)
Combining both makes it fail again.
Code:
local criteria_value = CreateFrame("EditBox", nil, panel, "InputBoxTemplate")
criteria_value:SetWidth(40)
criteria_value:SetHeight(19)
criteria_value:SetPoint("LEFT", criteria_label, "RIGHT", 10, 0)
criteria_value:SetAutoFocus(false)
criteria_value:SetMaxLetters(2)
criteria_value:SetScript("OnEscapePressed",
function(self)
criteria_value:ClearFocus()
print("criteria_value:GetText() : " .. criteria_value:GetText())
end)
criteria_value:SetScript("OnShow", function(self)
self:SetText(WATCHFRAME_CRITERIA_PER_ACHIEVEMENT)
end)
local function event_handler(self, event, ...)
criteria_value:SetText(WATCHFRAME_CRITERIA_PER_ACHIEVEMENT)
print("criteria_value:GetText() : " .. criteria_value:GetText())
end
panel:RegisterEvent("PLAYER_ENTERING_WORLD")
panel:SetScript("OnEvent", event_handler)