自定义组件中的CommitProperties不适用于百分比宽度
我的问题在标题中有很多描述。只是一些细节..我正在创建一个自定义组件(基于ComboBox)并覆盖一些基本方法。最近我发现当我设置宽度为百分比而不是固定宽度时,它会很奇怪。它倾向于不断调用
commitProperties
方法并最终失败。当我将它的宽度设置为固定值时 - 所有都像魅力一样。我想要实施什么?这是一些代码..
override protected function commitProperties():void {
super.commitProperties();
//some stuff ...
TextInput(textInput).setSelection(cursorPosition, cursorPosition);
if (cursorPosition == textInput.text.length || cursorPosition == 0) {
TextInput(textInput).horizontalScrollPosition = (cursorPosition == 0) ? 0 : textInput.width;
}
}
在这两种情况下,textInput.width
正确地返回计算值。
并且,仅针对案例,如果需要:
override protected function measure():void {
super.measure();
measuredWidth = 160;
}
我不确定是否还需要其他东西......如果是的话,请问。
提前致谢 :)
没有找到相关结果
已邀请:
2 个回复
逝媳蘑贩茄
实施结束时而不是在开始时调用
通常是一种好习惯。 如果你的
块使属性无效,如果在第一行调用
,则无法正确处理。
荤碗
以了解textInput的大小/时间。
在
中更新,因此在
期间不应该依赖此值。您可以尝试将滚动位置逻辑移动到组件的
的末尾(此时应更新宽度)。 祝好运!