关键词:setSelectedFont
,MacOS 开发
,NSColorPanel
,NSFontManager
,sharedFontManager
,orderFrontFontPanel
,pointSize
,fontName
,sharedColorPanel
,NSColorPanelMode
NSFontManager 选择字体
创建和使用
1、创建全局变量,如果不作为变量和初始化,会调用失败。
@property (nonatomic,strong) NSFont *font;
2、初始化 NSFont 和 NSFontManager。
- (void)openFontPanel{
//一定要初始化
self.font = [NSFont systemFontOfSize:14];
//不需要使用代理 NSFontManagerDelegate,代理也没有方法
NSFontManager *fontManager = [NSFontManager sharedFontManager];
[fontManager setTarget:self];
[fontManager setAction:@selector(changeFont:)];
[fontManager orderFrontFontPanel:self];
}
3、监听
- (void)changeFont:(id)sender {
self.font = [sender convertFont:self.font];
self.label.font = self.font;
NSLog(@"pointSize:%f ,fontName : %@ , familyName : %@",self.font.pointSize,self.font.fontName,self.font.familyName);
}
- pointSize 就是字体大小,fontName 是字体名
设置默认字体 setSelectedFont
如:每次打开选择时,字体大小都是 24
[fontManager setSelectedFont:[NSFont systemFontOfSize:24] isMultiple:NO];
从前认为选择颜色和选择日期一致,应该用名为 NSColorPicker 之类的控件,无奈网上资料很少,至今也没找到 NSColorPicker 的用法,偶然发现选择颜色应该用 NSColorPanel。
不过,知道 NSColorPicker、NSColorList怎么用的同学,欢迎告诉我~~
NSColorPanel 选择颜色
创建和调用
- NSColorPanel 继承自 NSPanel,而 NSPanel 继承自 NSWindow,而非 NSView,所以无法用 addSubview 来添加 panel.
- (void)openColorPanel{
NSColorPanel *colorpanel = [NSColorPanel sharedColorPanel];
colorpanel.mode = NSColorPanelModeCrayon; //调出时,默认色盘
[colorpanel setAction:@selector(changeColor:)];
[colorpanel setTarget:self];
[colorpanel orderFront:nil];
}
//颜色选择action事件
- (void)changeColor:(id)sender {
NSColorPanel *colorPanel = sender ;
NSColor *color = colorPanel.color;
self.window.backgroundColor = color;
}
NSColorPanelMode
typedef NS_ENUM(NSInteger, NSColorPanelMode) {
/* If the color panel is not displaying a mode, the NSColorPanelModeNone will be returned */
NSColorPanelModeNone NS_ENUM_AVAILABLE_MAC(10_5) = -1,
NSColorPanelModeGray = 0,
NSColorPanelModeRGB = 1,
NSColorPanelModeCMYK = 2,
NSColorPanelModeHSB = 3,
NSColorPanelModeCustomPalette = 4,
NSColorPanelModeColorList = 5,
NSColorPanelModeWheel = 6,
NSColorPanelModeCrayon = 7
};
截取了几个有代表性的:
1、NSColorPanelModeCMYK
2、NSColorPanelModeCrayon
3、NSColorPanelModeCustomPalette
4、NSColorPanelModeGray
5、NSColorPanelModeRGB