On Jul 17, 2012, at 6:58 PM, Erik Stainsby wrote:
> I'm working with the text from a multiline NSTextField. When it arrives in
> the delegate it is represented in an NSBigMutableString. Casting this to a
> NSAttributedString seems to have no effect on the actual class being used by
> the NSString cluster.
>
> I can't seem to find any documentation on NSBigMutableString.
>
> Can someone with deep experience tell me if I can _safely_ assume that NSBMS
> will respect all of NSAttributedString's method calls ?
>
> Also if I have a convenience function in a category, should I rewrite it as a
> category on NSString ? Or directly on the NSBMS, which seems to be a hidden
> class? Writing a category on a hidden class just doesn't feel right.
NSBigMutableString is a private subclass of NSString. NSAttributedString is
*not* a subclass of NSString; however, you can easily make an
NSAttributedString from an NSString (which is what you have). Something like
this:
- (BOOL)control:(NSControl *)control isValidObject:(id)object {
NSAttributedString *aStr = nil;
if ([object isKindOfClass:[NSAttributedString class]]) {
aStr = [object copy]; // or mutableCopy, or just use the given
instance, etc.
} else if ([object isKindOfClass:[NSString class]]) {
aStr = [[NSAttributedString alloc] initWithString:object];
}
// do whatever with your attributed string
}
and you should be good. You don’t care whether the class is NSBigMutableString
or some other hidden subclass; all you care about is that it’s some kind of
NSString (or NSAttributedString).
Charles
_______________________________________________
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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]