• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Vertically-expanding NSTextField
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


References: 
 >Vertically-expanding NSTextField (From: Andrew Bowman <email@hidden>)
 >Re: Vertically-expanding NSTextField (From: Uli Kusterer <email@hidden>)
 >Re: Vertically-expanding NSTextField (From: Andrew Bowman <email@hidden>)
 >Re: Vertically-expanding NSTextField (From: "Justin R. Miller" <email@hidden>)
 >Re: Vertically-expanding NSTextField (From: Greg Titus <email@hidden>)

  • Prev by Date: Re: NSDrawer in System Pref Pane
  • Next by Date: Re: malloc during selectAll -> crash
  • Previous by thread: Re: Vertically-expanding NSTextField
  • Next by thread: Re: Vertically-expanding NSTextField
  • Index(es):
    • Date
    • Thread