[Cocoa]_[初级]_[NSButton之改变title标题的颜色]

[Cocoa]_[初级]_[NSButton之改变title标题的颜色],第1张

概述场景:用于布局控件,根据界面的需要设置不同颜色的title。之前一直进入一个误区,直接自定义NSButton控件,其实这个方法是不好的,会使title重绘多次,复用性不高。 后来发现直接自定义NSButtonCell,可以只对title进行处理就可以了,而不必影响NSButton的其他属性。 下面是自定义NSButtonCell的方法。 MqjColorTitleButtonCell.h#imp

场景:用于布局控件,根据界面的需要设置不同颜色的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标题的颜色]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存