场景:
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
版权声明:本文为博主原创文章,,未经博主允许不得转载。
因为有了梦想,我们才能拥有奋斗的目标,