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.
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 mails | Author | Date |
|---|---|---|
| Ken Worley | Feb 13, 23:18 | |
| Douglas Davidson | Feb 13, 23:26 | |
| Ken Worley | Feb 13, 23:33 | |
| Jens Alfke | Feb 14, 00:37 | |
| Ken Worley | Feb 15, 21:35 | |
| Douglas Davidson | Feb 19, 00:14 | |
| Ken Worley | Feb 20, 18:59 |






Cocoa mail archive

