У меня есть текстовое поле, где я измеряю textWidth и textHeight, чтобы убедиться, что пользователь не может ввести больше текста, чем может поместиться в текстовой области. Я также расширил textArea с помощью textHeightNow и textWidthNow, которые измеряют размеры textField, поскольку они обновляются без проверки, требующей проверки. Теперь это прекрасно работает для 90% встроенных шрифтов, которые я использую, но любые шрифты с гигантскими засечками не измеряются должным образом, например, посмотрите на 'f' в этой текстовой области:
альтернативный текст http://img.skitch.com/20091101-xhm5jguma1qgukg6fxrymrwr3u.jpg
Вы можете видеть, что они обрезаются с обеих сторон, потому что textWidth и textWidthNow оба возвращают неправильный размер, не принимая во внимание массивные засечки. Размер шрифта, координаты и размеры текстовой области являются целыми числами, так что это не проблема, какие-либо другие предложения? Я посмотрел, есть ли у textArea аргумент clipContent, но его нет (это было бы неплохо).
Спасибо