In Flex 3.2, I’m creating a UITextField, then measuring text that I’m about to assign to that field’s text property. I then use those metrics to set the size of the field. However, the calculated width is not wide enough to accommodate the text. Is there a different order to achieve proper measurement or am I seeing a problem with the measureText() function? How can I get accurate results?
// UITextField's default size appears to be 100x100 // Measure the text then set width and height var tf:UITextFormat = uiTextField.getUITextFormat(); var tlm:TextLineMetrics = tf.measureText(this.labelText); // Text within the field is clipped unless 'padding' is added to the size // Flex Documentation specifies there is a 2 px gutter on each side, so // the expected padding would be 4 px. However, clipping occurs, for // 'Hello, World' up to 9 px. uiTextField.width = tlm.width + 9; uiTextField.height = tlm.height + 4; uiTextField.border = true; uiTextField.name = 'uiTextField'; uiTextField.text = this.labelText;
I’ve had all sorts of trouble with measuring the width and heights of textFields before. It looks like you just want to autosize the textField. Have you tried:
???