在Flex中,如何将TextInput设置为“未选中”(这意味着不仅焦点已经消失,而且如果您在键盘上发短信,则TextInput将不会更改)键?我知道如何使用FocusManager更改具有焦点的组件,但我不想更改具有焦点的组件,我只想要不选择此组件。
答案 0 :(得分:2)
我更像是一个AS3 dev,所以我不确定它是否在Flex中100%有效,但你可以在key handler上使用preventDefault()并将stage的焦点设置为null。
textinput.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
protected function keyDownHandler(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.ENTER) {
event.preventDefault();
stage.focus = null;
}
}
答案 1 :(得分:1)
textinput.setSelection(0,0)
答案 2 :(得分:0)
您可以使用具有函数签名的MX TextInput和TextArea控件上提供的setSelection()函数:
public function setSelection(beginIndex:int, endIndex:int):void
并接受两个参数,表示要选择的字符的开始和结束从零开始的索引。起始索引字符将包含在选择中,结束索引是之后的选择中的最后一个字符。
使用类似textinput.setSelection(0,0)
之类的东西,实质上不会在文本输入字段中选择任何内容。这将适用于Flex 3。
但是,如果您使用的是Flex 4,则使用selectRange(anchorIndex:int, activeIndex:int)
功能更合适,功能相同。 setSelection()和selectRange()之间的区别在于后者是立即完成的。如果任一位置为负数,则selectRange()函数将取消选择文本范围。