从 TextField 移除焦点后如何刷新鼠标光标?

How do I refresh the mouse cursor after I remove focus from a TextField?

如果用户键入 ESC 或 ENTER,或者将焦点放在其他地方,我想删除文本字段上的焦点和选择。因此我这样做:

        stage.focus = null;

        textField.type = TextFieldType.DYNAMIC;
        textField.selectable = false;
        textField.mouseEnabled = false;

问题是,如果鼠标悬停在可编辑的文本字段上,鼠标处于 IBEAM 模式(插入符号光标)并保持 IBEAM 模式,即使在执行上述命令之后,直到我稍微移动鼠标,在它将 returns 指向 AUTO 状态。

我想强制鼠标自行更新并满足 AUTO 状态,但无论我如何尝试确保禁用文本字段,它都不会自行消失,只有在我移动鼠标后位.

您评论中的最简单答案:

So I was fidling with your suggestion and for the luls, used Mouse.hide() and then Mouse.show() and it worked. Removed the hide() and it works just with Mouse.show()! Guess it refreshes the mouse cursor. No blink, works perfectly <3

我原来的回答:

这是一种解决方法,但实施起来应该不会太困难。希望有人能提供原生 API 解决方案。

  1. 运行 您发布的代码
  2. 然后使光标不可见
  3. 然后将您的自定义光标放在鼠标位置(如果您不介意光标消失,则可选)
  4. MouseEvent.MOUSE_MOVE 删除您的自定义光标,并使光标再次可见。

我怀疑您是否需要我为您编写此代码,但如果您认为此方法适合您,并且在实施此技术时遇到问题,请告诉我。

如果您担心不同的系统具有不同的鼠标图标,然后突然在一瞬间获得您的自定义鼠标图标,那么简单的解决方案就是始终使用您的自定义光标。你可以把它设计成你喜欢的样子;模仿 Windows OS 或使其独一无二。