Skip navigation.
 
mlRe: Setting alignment of NSTextView programmatically [SOLVED]
FROM : Ken Worley
DATE : Fri Feb 15 21:35:17 2008

On Feb 13, 2008, at 3:18 PM, Ken Worley wrote:

> Hi all,
>
> I can't seem to grok exactly the right way to align a plain text 
> NSTextView (left, center or right). I modified the ButtonMadness 
> sample project to experiment by replacing the code that creates a 
> code-based segment control with a code-based text view like this 
> that should be right-aligned:
>
>     buttonFrame = [placeHolder5 frame];
>     
>     codeBasedTextView = [[NSTextView alloc] initWithFrame:buttonFrame];
>     [codeBasedTextView setEditable:NO];
>     [codeBasedTextView setSelectable:YES];
>     [codeBasedTextView setDrawsBackground:NO];
>     [codeBasedTextView setRichText:NO];
>     [codeBasedTextView setImportsGraphics:NO];
>     [codeBasedTextView alignRight:nil];
>     [codeBasedTextView setString:@"a string"];
>     [segmentBox addSubview:codeBasedTextView];
>     [placeHolder5 removeFromSuperview];    // we are done with the place 
> holder, remove it from the window
>
> but the string still shows up left aligned rather than right 
> aligned. I'm obviously not doing something right, but I'm a little 
> new to all the Cocoa APIs. Any help would be appreciated. My goal 
> would be that if the NSTextView auto-resizes and becomes wider, the 
> text would automatically follow the right edge.
>
> Documentation for alignRight does say:
>
> "This action method applies right alignment to selected paragraphs 
> (or all text if the receiver is a plain text object)."
>
> and, as nearly as I can tell, the text view is set up to be plain 
> text, but maybe I don't understand that part either.



Here's the solution I've got for now that works in the sample project:

Take out the alignRight message in the above and replace it with this:

   NSParagraphStyle* tStyle = [NSParagraphStyle defaultParagraphStyle];
   NSMutableParagraphStyle* tMutStyle = [tStyle mutableCopy];
   [tMutStyle setAlignment:NSRightTextAlignment];
   [codeBasedTextView setDefaultParagraphStyle:tMutStyle];

Oddly enough, it does not work if I start with [codeBasedTextView 
defaultParagraphStyle]. Also, I still can't understand why simply 
calling alignRight doesn't work since it's supposed to apply to all 
text if the receiver is plain text...

Ken


--
Ken Worley
Software Engineer, Tiberius, Inc.

Related mailsAuthorDate
mlSetting alignment of NSTextView programmatically Ken Worley Feb 13, 23:18
mlRe: Setting alignment of NSTextView programmatically Douglas Davidson Feb 13, 23:26
mlRe: Setting alignment of NSTextView programmatically Ken Worley Feb 13, 23:33
mlRe: Setting alignment of NSTextView programmatically Jens Alfke Feb 14, 00:37
mlRe: Setting alignment of NSTextView programmatically [SOLVED] Ken Worley Feb 15, 21:35
mlRe: Setting alignment of NSTextView programmatically [SOLVED] Douglas Davidson Feb 19, 00:14
mlRe: Setting alignment of NSTextView programmatically [SOLVED] Ken Worley Feb 20, 18:59