hmm... okay. I get what you're saying about range, and I did wonder about that,
but it seems strange to be required to always set it by range, for each line.
Shouldn't there just be a single, persistent setting -- a default, as it were?
I'll look at the typingAttributes, but this text is being set programmatically,
not by the user. Don't know if that makes a difference... ("Typing" certainly
sounds like user input to me.)
As I say, I would have expected the IB Attributes panel to be able to set it,
but it's not working, for whatever reason.
J.
On 2010-06-06, at 5:29 PM, Ross Carter wrote:
> On Jun 6, 2010, at 1:21 PM, James Maxwell wrote:
>
>> I have a NSTextView that's displaying MIDI info from my app's current MIDI
>> input device. I show this info in a couple of places - one is in a "MIDI
>> Setup" type window, and the other is in an Inspector window. I want the
>> Inspector window to show this data in light grey text against a dark
>> background (whereas the MIDI Setup window shows it in black on white).
>> I'm doing this from my MIDI controller class, which is instantiated as a nib
>> in IB. The controller has an IBOutlet to the desired text view. In the
>> controller's init I tried just setting the foreground colour of my text
>> view's textStorage, but that didn't work -- it still displays as black text.
>> It does work to do this:
>>
>> [[mainWindowMIDIMonitor textStorage] setForegroundColor:[NSColor
>> lightGrayColor]];
>> [mainWindowMIDIMonitor performSelectorOnMainThread:@selector(setString:)
>> withObject:monitorInfo waitUntilDone:NO];
>>
>> But it doesn't display the first input in light grey. It starts out as
>> black, than changes after the first entry... go figure...
>> Is there no way to just permanently set the text colour to light grey once?
>> Do I have to have the controller hold a reference to the text view, rather
>> than just using an outlet?
>
> This might help; forgive me if it doesn't address your situation. In an
> NSTextStorage object, text attributes are values that apply to some range of
> text in the object. If the object has no text, then setting attributes is
> meaningless. If a textStorage length is 0, and you set a foreground color
> attribute, and subsequently add some text, the text does not necessarily show
> up with that foreground color.
>
> When plain text without attributes is added to a textStorage object--as, for
> example, with input from the keyboard--the NSTextView uses its
> typingAttributes dictionary to apply attributes to the new text. So, if
> you've got a new NSTextView whose NSTextStorage length is 0, and you are
> going to add some plain text to it, you must first set the typingAttributes
> of the NSTextView to the desired attributes.
>
> -setForegroundColor: is one of the scriptability methods of NSTextStorage.
> Those methods are not recommended for use in non-scripting situations.
> _______________________________________________
>
> Cocoa-dev mailing list ([email protected])
>
> 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:
> http://lists.apple.com/mailman/options/cocoa-dev/jbmaxwell%40rubato-music.com
>
> This email sent to [email protected]
James B Maxwell
Composer/Doctoral Student
School for the Contemporary Arts (SCA)
School for Interactive Arts + Technology (SIAT)
Simon Fraser University
[email protected]
[email protected]
_______________________________________________
Cocoa-dev mailing list ([email protected])
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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]