Re: Vertically-expanding NSTextField
Re: Vertically-expanding NSTextField
- Subject: Re: Vertically-expanding NSTextField
- From: Andrew Bowman <email@hidden>
- Date: Thu, 11 May 2006 13:15:00 -0700
On May 11, 2006, at 10:54 AM, Greg Titus wrote:
On May 11, 2006, at 10:44, Justin R. Miller wrote:
On May 11, 2006, at 12:33 PM, Andrew Bowman wrote:
My deployment target is for 10.4. This app is for my senior
project, so I'm not worrying about running this on anything below
10.3. I've tried throwing in a sizeToFit call in my
textDidChange method, and it is making my textfield jump to a
lower position in the window with very small width. No
autosizing of any kind is occurring either.
I've nearly got this working in textDidChange:, comparing the
NSTextField's cell width to the NSTextField's width to see if
we've wrapped, then creating a new NSRect and using NSWindow's
setFrame:display:animate: to do the resize.
I say nearly because I just figured it out this morning and have
yet to test and finalize some stuff, but it's mostly there. This
is the only way I've been able to figure out if the field has
wrapped to a separate line yet.
The end result is the field expands to two lines once the typing
does, but backs off to one if enough content is deleted to warrant
it going back to one.
The other (probably more efficient) way to do this would be to get
your window's field editor (which is the NSTextView which actually
handles the editing while you are doing it), and register for the
field editor's frame-did-change notifications. Those will occur
only when the editing area grows or shrinks, so you'd be handling
fewer actions and wouldn't need to do the size comparisons between
cell and field yourself.
Very elegant. You just need to be sure to check if the field
editor's delegate is self before taking action, as the editor is
shared across multiple elements.
This could produce an infinite loop, however, if you change your
frame in the notification callback. Is there a good solution to
adjusting the textfield height to accommodate all the text without
doing this?
- Andrew Bowman
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden