场景:用于布局控件,根据界面的需要设置不同颜色的Title。之前一直进入一个误区,直接自定义NSbutton控件,其实这个方法是不好的,会使Title重绘多次,复用性不高。
后来发现直接自定义NSbuttonCell,可以只对Title进行处理就可以了,而不必影响NSbutton的其他属性。
下面是自定义NSbuttonCell的方法。
MqjcolorTitlebuttonCell.h#import <Cocoa/Cocoa.h>@interface MqjcolorTitlebuttonCell : NSbuttonCell@endMqjcolorTitlebuttonCell.m
<pre name="code" >#import "MqjcolorTitlebuttonCell.h"@implementation MqjcolorTitlebuttonCell- (NSRect)drawTitle:(NSAttributedString *)Title withFrame:(NSRect)frame inVIEw:(NSVIEw *)controlVIEw{ NSSize TitleSize = [Title size]; //居中显示 CGfloat TitleY = frame.origin.y + (frame.size.height - TitleSize.height)/2; NSRect rectTitle = frame; rectTitle.origin.y = TitleY; NSMutableAttributedString *TitleStr =[[NSMutableAttributedString alloc] initWithAttributedString:Title]; [TitleStr addAttribute:NSForegroundcolorAttributename value:[NScolor redcolor] range:NSMakeRange(0,TitleStr.length)]; [TitleStr drawInRect:rectTitle]; [TitleStr release]; return frame;}@end
直接把NSbutton
中的NSbuttonCell的Class改为MqjcolorTitlebutton,然后其他 *** 作不变。 总结以上是内存溢出为你收集整理的[Cocoa]_[初级]_[NSButton之改变title标题的颜色]全部内容,希望文章能够帮你解决[Cocoa]_[初级]_[NSButton之改变title标题的颜色]所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)