[Cocoa]_[初级]_[如何绘制带颜色的文本]

来源:互联网 发布:淘宝图片侵权处罚 编辑:程序博客网 时间:2024/06/09 03:48


场景:

1. 自定义view或其他控件时, 往往需要根据背景色或图片绘制特定颜色的文本.


    NSMutableDictionary* stringAttributes = [NSMutableDictionary dictionaryWithCapacity:1];    //[stringAttributes setObject:[NSFont messageFontOfSize:12.0] forKey:NSFontAttributeName];    [stringAttributes setObject:[NSColor whiteColor] forKey:NSForegroundColorAttributeName];        NSString* systemCapacity = [NSString stringWithFormat:@"System: %@",[FileUtil ZLGetFormatSizeFromBytes:system]];    NSSize systemSize = [systemCapacity sizeWithAttributes:stringAttributes];    theRect1.origin.x += (theRect1.size.width - systemSize.width)/2;    [systemCapacity drawAtPoint:theRect1.origin withAttributes:stringAttributes];

效果图



说明:

主要时添加了绘制属性, 具体有哪些属性看头文件 NSAttributedString.h

以下是部分属性:

/* Predefined character attributes for text. If the key is not in the dictionary, then use the default values as described below.*/APPKIT_EXTERN NSString *NSFontAttributeName;                // NSFont, default Helvetica 12APPKIT_EXTERN NSString *NSParagraphStyleAttributeName;      // NSParagraphStyle, default defaultParagraphStyleAPPKIT_EXTERN NSString *NSForegroundColorAttributeName;     // NSColor, default blackColorAPPKIT_EXTERN NSString *NSUnderlineStyleAttributeName;      // NSNumber containing integer, default 0: no underlineAPPKIT_EXTERN NSString *NSSuperscriptAttributeName;         // NSNumber containing integer, default 0APPKIT_EXTERN NSString *NSBackgroundColorAttributeName;     // NSColor, default nil: no backgroundAPPKIT_EXTERN NSString *NSAttachmentAttributeName;          // NSTextAttachment, default nilAPPKIT_EXTERN NSString *NSLigatureAttributeName;            // NSNumber containing integer, default 1: default ligatures, 0: no ligatures, 2: all ligaturesAPPKIT_EXTERN NSString *NSBaselineOffsetAttributeName;      // NSNumber containing floating point value, in points; offset from baseline, default 0APPKIT_EXTERN NSString *NSKernAttributeName;                // NSNumber containing floating point value, in points; amount to modify default kerning, if 0, kerning offAPPKIT_EXTERN NSString *NSLinkAttributeName;                // NSURL (preferred) or NSStringAPPKIT_EXTERN NSString *NSStrokeWidthAttributeName;         // NSNumber containing floating point value, in percent of font point size, default 0: no stroke; positive for stroke alone, negative for stroke and fill (a typical value for outlined text would be 3.0)APPKIT_EXTERN NSString *NSStrokeColorAttributeName;         // NSColor, default nil: same as foreground colorAPPKIT_EXTERN NSString *NSUnderlineColorAttributeName;      // NSColor, default nil: same as foreground colorAPPKIT_EXTERN NSString *NSStrikethroughStyleAttributeName;  // NSNumber containing integer, default 0: no strikethroughAPPKIT_EXTERN NSString *NSStrikethroughColorAttributeName;  // NSColor, default nil: same as foreground colorAPPKIT_EXTERN NSString *NSShadowAttributeName;              // NSShadow, default nil: no shadowAPPKIT_EXTERN NSString *NSObliquenessAttributeName;         // NSNumber containing floating point value; skew to be applied to glyphs, default 0: no skewAPPKIT_EXTERN NSString *NSExpansionAttributeName;           // NSNumber containing floating point value; log of expansion factor to be applied to glyphs, default 0: no expansionAPPKIT_EXTERN NSString *NSCursorAttributeName;              // NSCursor, default IBeamCursorAPPKIT_EXTERN NSString *NSToolTipAttributeName;             // NSString, default nil: no 


0 0