FROM : Shawn Erickson
DATE : Wed Nov 07 22:55:50 2007
On 11/7/07, Shawn Erickson <<email_removed>> wrote:
> On 11/7/07, Erfan Aleemullah <erfan.<email_removed>> wrote:
> > Hi all,
> > I have an issue with NSAttributedString -
> >
> > I am currently combining several strings into one string using
> > -stringByAppendingString- and then converting this string into
> > AttributedString for output -
> >
> > but each String has a distinct colour (user defined) which the
> > NSAttributedString object does not recognize - it just colours the whole
> > concatenated string the same colour based on the value it grabs from
> > NSDictionary
> >
> > What is the best way to output a concatenated, multicolored string ?
>
> Simple create an attributed string with each string range colored as needed...
>
> Your example code appends strings together and then creates an
> attributed string with what looks to be the last color specified,
> which is not what I think you want.
>
> Why not use NSMutableAttributed string? You would then create an
> NSAttributed string for each string with the color information for
> that string. Once you have that attributed string append it to your
> mutable attributed string.
On a side note I have the following categories to help with this...
@implementation NSAttributedString (COLUtilities)
+ (id) stringWithString:(NSString*)string attributes:(NSDictionary*)attributes
{
if (attributes == nil) {
return [[[self alloc] initWithString:string] autorelease];
} else {
return [[[self alloc] initWithString:string
attributes:attributes] autorelease];
}
}
@end
@implementation NSMutableAttributedString (COLUtilities)
- (void) appendString:(NSString*)string attributes:(NSDictionary*)attributes
{
[self appendAttributedString:[NSAttributedString
stringWithString:string attributes:attributes]];
}
@end
DATE : Wed Nov 07 22:55:50 2007
On 11/7/07, Shawn Erickson <<email_removed>> wrote:
> On 11/7/07, Erfan Aleemullah <erfan.<email_removed>> wrote:
> > Hi all,
> > I have an issue with NSAttributedString -
> >
> > I am currently combining several strings into one string using
> > -stringByAppendingString- and then converting this string into
> > AttributedString for output -
> >
> > but each String has a distinct colour (user defined) which the
> > NSAttributedString object does not recognize - it just colours the whole
> > concatenated string the same colour based on the value it grabs from
> > NSDictionary
> >
> > What is the best way to output a concatenated, multicolored string ?
>
> Simple create an attributed string with each string range colored as needed...
>
> Your example code appends strings together and then creates an
> attributed string with what looks to be the last color specified,
> which is not what I think you want.
>
> Why not use NSMutableAttributed string? You would then create an
> NSAttributed string for each string with the color information for
> that string. Once you have that attributed string append it to your
> mutable attributed string.
On a side note I have the following categories to help with this...
@implementation NSAttributedString (COLUtilities)
+ (id) stringWithString:(NSString*)string attributes:(NSDictionary*)attributes
{
if (attributes == nil) {
return [[[self alloc] initWithString:string] autorelease];
} else {
return [[[self alloc] initWithString:string
attributes:attributes] autorelease];
}
}
@end
@implementation NSMutableAttributedString (COLUtilities)
- (void) appendString:(NSString*)string attributes:(NSDictionary*)attributes
{
[self appendAttributedString:[NSAttributedString
stringWithString:string attributes:attributes]];
}
@end
| Related mails | Author | Date |
|---|---|---|
| Erfan Aleemullah | Nov 7, 22:37 | |
| Shawn Erickson | Nov 7, 22:52 | |
| I. Savant | Nov 7, 22:53 | |
| Shawn Erickson | Nov 7, 22:55 |






Cocoa mail archive

