• 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: Changing the line height of an NSTextField?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changing the line height of an NSTextField?


  • Subject: Re: Changing the line height of an NSTextField?
  • From: Nicholas J Humfrey <email@hidden>
  • Date: Wed, 26 Mar 2008 22:10:09 +0000

Ah, interesting, thanks for this tip. As a note for anyone else who wants to try and do this:

In the end I subclased the NSTextField class and overrid the drawRect function. I then split the string up into its lines and drew them myself using drawRect. This is some of the first Cocoa code I have written, so please don't hurt me if what I am doing is crazy!


-(void)drawRect:(NSRect)r
{
NSArray *lines = [[self stringValue] componentsSeparatedByString:@"\n"];
NSDictionary* attributes = [self textAttributes];
int n;

// Use a black pen to draw the text
[[NSColor blackColor] set];


	// Draw the text to the view, line by line
	for (n=0; n<[lines count]; n++) {
		NSString *line = [lines objectAtIndex:n];
		NSPoint point;
		point.x = 0;
		point.y = (n*10);

		// Should the text be centered?
		if ([self alignment] == NSCenterTextAlignment) {
			NSSize size = [line sizeWithAttributes:attributes];
			point.x += (r.size.width - size.width)/2;
		}

		// Draw it!
		[line drawAtPoint: point withAttributes: attributes];
	}
}


On 26 Mar 2008, at 16:58, John Stiles wrote:
I've found that adjusting the font matrix to include a negative Y transformation has the effect of decreasing the line height. This seemed like a bug to me when I discovered it, since I just wanted the text to be translated upwards in its cell, not shrink the line height. I wasn't sure if it was a bug or desired functionality. If this is the correct behavior, it's one way to do it.


Nicholas J Humfrey wrote:

Hello Cocoa Developers,

I am trying to squeeze an extra line of text into a multiline NSTextField, but I can't work out how to adjust the line height? What is the easiest way of adjusting this?


The purpose of this is that I'm actually using several NSTextFields on an NSView to lay text out for printing on to a sheet of labels, which has been working out very nicely up until this point! Perhaps there is a better way of doing this?



Thanks,

nick.

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Changing the line height of an NSTextField?
      • From: Douglas Davidson <email@hidden>
References: 
 >Changing the line height of an NSTextField? (From: Nicholas J Humfrey <email@hidden>)
 >Re: Changing the line height of an NSTextField? (From: John Stiles <email@hidden>)

  • Prev by Date: Re: Ephemeral Changes
  • Next by Date: Re: Changing the line height of an NSTextField?
  • Previous by thread: Re: Changing the line height of an NSTextField?
  • Next by thread: Re: Changing the line height of an NSTextField?
  • Index(es):
    • Date
    • Thread