MacOS 开发

来源:互联网 发布:云上贵州大数据秦晓东 编辑:程序博客网 时间:2024/05/21 10:41

关键词:setSelectedFont,MacOS 开发,NSColorPanel,NSFontManager,sharedFontManager,orderFrontFontPanel,pointSize,fontName,sharedColorPanel,NSColorPanelMode

  • NSFontManager 选择字体
    • 创建和使用
    • 设置默认字体 setSelectedFont
  • NSColorPanel 选择颜色
    • 创建和调用
    • NSColorPanelMode


NSFontManager 选择字体

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
NSColorPanelModeCMYK


2、NSColorPanelModeCrayon
NSColorPanelModeCrayon


3、NSColorPanelModeCustomPalette
NSColorPanelModeCustomPalette


4、NSColorPanelModeGray
NSColorPanelModeGray


5、NSColorPanelModeRGB
NSColorPanelModeRGB


原创粉丝点击