Mac开发_NSColor

1、创建示例

2、API说明

// 颜色类型
typedef NS_ENUM(NSInteger, NSColorType) {
    // 基于组成部分的颜色,由RGB、CMYK等组成。
    NSColorTypeComponentBased,
    // 图案颜色,使用一个图案来填充一个区域。
    NSColorTypePattern,
    // 目录中定义的颜色,可以在Interface Builder中使用。
    NSColorTypeCatalog
};

// 颜色系统效果
typedef NS_ENUM(NSInteger, NSColorSystemEffect) {
    // 无效果
    NSColorSystemEffectNone,
    // 按下效果
    NSColorSystemEffectPressed,
    // 深度按下效果
    NSColorSystemEffectDeepPressed,
    // 禁用效果
    NSColorSystemEffectDisabled,
    // 悬停效果
    NSColorSystemEffectRollover,
} API_AVAILABLE(macos(10.14));

@interface NSColor : NSObject <NSCopying, NSSecureCoding, NSPasteboardReading, NSPasteboardWriting>

/**
 * @brief 新建对象的初始化方法
 *
 * @return 新建的对象
 */
- (instancetype)init NS_DESIGNATED_INITIALIZER;

/**
 * @brief 实现NSCoding协议, 解码初始化方法
 *
 * @param coder 解码器
 * @return 解码出来的对象
 */
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

/**
 * @brief 通过指定的颜色空间和数组值,创建颜色对象
 *
 * @param space 颜色空间
 * @param components 颜色数组
 * @param numberOfComponents 颜色数组中的总数量
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithColorSpace:(NSColorSpace *)space components:(const CGFloat *)components count:(NSInteger)numberOfComponents;

/**
 * @brief 使用SRGB的红、绿、蓝和Alpha值创建颜色对象
 *
 * @param red 红色值
 * @param green 绿色值
 * @param blue 蓝色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithSRGBRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha  API_AVAILABLE(macos(10.7));

/**
 * @brief 使用伽马2.2的白色和Alpha值创建颜色对象
 *
 * @param white 白色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithGenericGamma22White:(CGFloat)white alpha:(CGFloat)alpha  API_AVAILABLE(macos(10.7));

/**
 * @brief 使用Display P3的红、绿、蓝和Alpha值创建颜色对象
 *
 * @param red 红色值
 * @param green 绿色值
 * @param blue 蓝色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithDisplayP3Red:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha API_AVAILABLE(macos(10.12));

/**
 * @brief 使用白色和Alpha值创建颜色对象
 *
 * @param white 白色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithWhite:(CGFloat)white alpha:(CGFloat)alpha API_AVAILABLE(macos(10.9));

/**
 * @brief 使用红、绿、蓝和Alpha值创建颜色对象
 *
 * @param red 红色值
 * @param green 绿色值
 * @param blue 蓝色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha API_AVAILABLE(macos(10.9));

/**
 * @brief 使用色调、饱和度、明度和Alpha值创建颜色对象
 *
 * @param hue 色调值
 * @param saturation 饱和度值
 * @param brightness 明度值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha API_AVAILABLE(macos(10.9));

/**
 * @brief 使用指定的颜色空间、色调、饱和度、明度和Alpha值创建颜色对象
 *
 * @param space 颜色空间
 * @param hue 色调值
 * @param saturation 饱和度值
 * @param brightness 明度值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithColorSpace:(NSColorSpace *)space hue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha API_AVAILABLE(macos(10.12));

/**
 * @brief 使用指定的颜色列表名称和颜色名称创建颜色对象
 *
 * @param listName 颜色列表名称
 * @param colorName 颜色名称
 * @return 新建的颜色对象
 */
+ (nullable NSColor *)colorWithCatalogName:(NSColorListName)listName colorName:(NSColorName)colorName;

/**
 * @brief 使用指定名称和Bundle创建颜色对象
 *
 * @param name 颜色名称
 * @param bundle Bundle对象
 * @return 新建的颜色对象
 */
+ (nullable NSColor *)colorNamed:(NSColorName)name bundle:(nullable NSBundle *)bundle API_AVAILABLE(macos(10.13));

/**
 * @brief 使用指定名称创建颜色对象
 *
 * @param name 颜色名称
 * @return 新建的颜色对象
 */
+ (nullable NSColor *)colorNamed:(NSColorName)name API_AVAILABLE(macos(10.13));

/**
 * @brief 使用设备色调、饱和度、明度和Alpha值创建颜色对象
 *
 * @param hue 色调值
 * @param saturation 饱和度值
 * @param brightness 明度值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithDeviceHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha;

/**
 * @brief 使用设备白色和Alpha值创建颜色对象
 *
 * @param white 白色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithDeviceWhite:(CGFloat)white alpha:(CGFloat)alpha;

/**
 * @brief 使用设备红、绿、蓝和Alpha值创建颜色对象
 *
 * @param red 红色值
 * @param green 绿色值
 * @param blue 蓝色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithDeviceRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;

/**
 * @brief 使用设备色调、饱和度、明度和Alpha值创建颜色对象
 *
 * @param cyan 青色值
 * @param magenta 洋红色值
 * @param yellow 黄色值
 * @param black 黑色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithDeviceCyan:(CGFloat)cyan magenta:(CGFloat)magenta yellow:(CGFloat)yellow black:(CGFloat)black alpha:(CGFloat)alpha;

/**
 * @brief 使用设备白色和Alpha值(校正过)创建颜色对象
 *
 * @param white 白色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithCalibratedWhite:(CGFloat)white alpha:(CGFloat)alpha;

/**
 * @brief 使用设备红、绿、蓝和Alpha值(校正过)创建颜色对象
 *
 * @param red 红色值
 * @param green 绿色值
 * @param blue 蓝色值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithCalibratedRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;

/**
 * @brief 使用设备色调、饱和度、明度和Alpha值(校正过)创建颜色对象
 *
 * @param hue 色调值
 * @param saturation 饱和度值
 * @param brightness 明度值
 * @param alpha Alpha值
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithCalibratedHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha;

/**
 * @brief 使用图像创建颜色对象
 *
 * @param image 图像对象
 * @return 新建的颜色对象
 */
+ (NSColor *)colorWithPatternImage:(NSImage *)image;

/** 颜色类型 */
@property(readonly) NSColorType type API_AVAILABLE(macos(10.13));
/**
 * @brief 获取该颜色使用指定颜色类型的表示形式
 *
 * @param type 颜色类型
 * @return 该颜色使用指定颜色类型的表示形式,如果转换失败则返回 nil
 */
- (nullable NSColor *)colorUsingType:(NSColorType)type API_AVAILABLE(macos(10.13));

/**
 * @brief 获取该颜色使用指定颜色空间的表示形式
 *
 * @param space 颜色空间
 * @return 该颜色使用指定颜色空间的表示形式,如果转换失败则返回 nil
 */
- (nullable NSColor *)colorUsingColorSpace:(NSColorSpace *)space;

/** 黑色 */
@property(class, strong, readonly) NSColor *blackColor;
/** 暗灰色 */
@property(class, strong, readonly) NSColor *darkGrayColor;
/** 亮灰色 */
@property(class, strong, readonly) NSColor *lightGrayColor;
/** 白色 */
@property(class, strong, readonly) NSColor *whiteColor;
/** 灰色 */
@property(class, strong, readonly) NSColor *grayColor;
/** 红色 */
@property(class, strong, readonly) NSColor *redColor;
/** 绿色 */
@property(class, strong, readonly) NSColor *greenColor;
/** 蓝色 */
@property(class, strong, readonly) NSColor *blueColor;
/** 青色 */
@property(class, strong, readonly) NSColor *cyanColor;
/** 黄色 */
@property(class, strong, readonly) NSColor *yellowColor;
/** 洋红色 */
@property(class, strong, readonly) NSColor *magentaColor;
/** 橙色 */
@property(class, strong, readonly) NSColor *orangeColor;
/** 紫色 */
@property(class, strong, readonly) NSColor *purpleColor;
/** 棕色 */
@property(class, strong, readonly) NSColor *brownColor;
/** 透明色 */
@property(class, strong, readonly) NSColor *clearColor;
/** 标签颜色 */
@property(class, strong, readonly) NSColor *labelColor API_AVAILABLE(macos(10.10));
/** 次要标签颜色 */
@property(class, strong, readonly) NSColor *secondaryLabelColor API_AVAILABLE(macos(10.10));
/** 第三个标签颜色 */
@property(class, strong, readonly) NSColor *tertiaryLabelColor API_AVAILABLE(macos(10.10));
/** 第四个标签颜色 */
@property(class, strong, readonly) NSColor *quaternaryLabelColor API_AVAILABLE(macos(10.10));
/** 链接颜色 */
@property(class, strong, readonly) NSColor *linkColor API_AVAILABLE(macos(10.10));
/** 占位符文本颜色 */
@property(class, strong, readonly) NSColor *placeholderTextColor API_AVAILABLE(macos(10.10));
/** 窗口框架文本颜色 */
@property(class, strong, readonly) NSColor *windowFrameTextColor;
/** 选中菜单项文本颜色 */
@property(class, strong, readonly) NSColor *selectedMenuItemTextColor;
/** 备选选中控件文本颜色 */
@property(class, strong, readonly) NSColor *alternateSelectedControlTextColor;
/** 标题文字颜色 */
@property(class, strong, readonly) NSColor *headerTextColor;
/** 分隔线颜色 */
@property(class, strong, readonly) NSColor *separatorColor API_AVAILABLE(macos(10.14));
/** 网格颜色 */
@property(class, strong, readonly) NSColor *gridColor;
/** 窗口背景颜色 */
@property(class, strong, readonly) NSColor *windowBackgroundColor;
/** 页面下方背景颜色 */
@property(class, strong, readonly) NSColor *underPageBackgroundColor API_AVAILABLE(macos(10.8));
/** 控件背景颜色 */
@property(class, strong, readonly) NSColor *controlBackgroundColor;
/** 选定内容的背景颜色 */
@property(class, strong, readonly) NSColor *selectedContentBackgroundColor API_AVAILABLE(macos(10.14));
/** 未强调选定内容的背景颜色 */
@property(class, strong, readonly) NSColor *unemphasizedSelectedContentBackgroundColor API_AVAILABLE(macos(10.14));
/** macOS 10.14 可用。获取表格视图等控件隔行背景色的数组 */
@property(class, strong, readonly) NSArray<NSColor *> *alternatingContentBackgroundColors API_AVAILABLE(macos(10.14));
/** macOS 10.13 可用。获取用于文本编辑器中查找结果的高亮颜色 */
@property(class, strong, readonly) NSColor *findHighlightColor API_AVAILABLE(macos(10.13));
/** 获取文本的颜色 */
@property(class, strong, readonly) NSColor *textColor;
/** 获取文本背景色 */
@property(class, strong, readonly) NSColor *textBackgroundColor;
/** 获取所选文本的颜色 */
@property(class, strong, readonly) NSColor *selectedTextColor;
/** 获取所选文本的背景色 */
@property(class, strong, readonly) NSColor *selectedTextBackgroundColor;
/** macOS 10.14 可用。获取未强调所选文本的背景色 */
@property(class, strong, readonly) NSColor *unemphasizedSelectedTextBackgroundColor API_AVAILABLE(macos(10.14));
/** macOS 10.14 可用。获取未强调所选文本的颜色 */
@property(class, strong, readonly) NSColor *unemphasizedSelectedTextColor API_AVAILABLE(macos(10.14));
/** 获取控件的颜色 */
@property(class, strong, readonly) NSColor *controlColor;
/** 获取控件文本的颜色 */
@property(class, strong, readonly) NSColor *controlTextColor;
/** 获取所选控件的颜色 */
@property(class, strong, readonly) NSColor *selectedControlColor;
/** 获取所选控件文本的颜色 */
@property(class, strong, readonly) NSColor *selectedControlTextColor;
/** 获取控件禁用时文本的颜色 */
@property(class, strong, readonly) NSColor *disabledControlTextColor;
/** 获取键盘焦点指示符的颜色 */
@property(class, strong, readonly) NSColor *keyboardFocusIndicatorColor;
/** macOS 10.12.2 可用。获取文本滑块的纹理背景颜色 */
@property(class, strong, readonly) NSColor *scrubberTexturedBackgroundColor API_AVAILABLE(macos(10.12.2));

/** 系统红色 */
@property(class, strong, readonly) NSColor *systemRedColor API_AVAILABLE(macos(10.10));
/** 系统绿色 */
@property(class, strong, readonly) NSColor *systemGreenColor API_AVAILABLE(macos(10.10));
/** 系统蓝色 */
@property(class, strong, readonly) NSColor *systemBlueColor API_AVAILABLE(macos(10.10));
/** 系统橙色 */
@property(class, strong, readonly) NSColor *systemOrangeColor API_AVAILABLE(macos(10.10));
/** 系统黄色 */
@property(class, strong, readonly) NSColor *systemYellowColor API_AVAILABLE(macos(10.10));
/** 系统棕色 */
@property(class, strong, readonly) NSColor *systemBrownColor API_AVAILABLE(macos(10.10));
/** 系统粉红色 */
@property(class, strong, readonly) NSColor *systemPinkColor API_AVAILABLE(macos(10.10));
/** 系统紫色 */
@property(class, strong, readonly) NSColor *systemPurpleColor API_AVAILABLE(macos(10.10));
/** 系统灰色 */
@property(class, strong, readonly) NSColor *systemGrayColor API_AVAILABLE(macos(10.10));
/** 系统青蓝色 */
@property(class, strong, readonly) NSColor *systemTealColor API_AVAILABLE(macos(10.12));
/** 系统靛青色 */
@property(class, strong, readonly) NSColor *systemIndigoColor API_AVAILABLE(macos(10.15));
/** 系统薄荷绿色 */
@property(class, strong, readonly) NSColor *systemMintColor API_AVAILABLE(macos(10.12));
/** 系统青色 */
@property(class, strong, readonly) NSColor *systemCyanColor API_AVAILABLE(macos(12.0));
/** 控制颜色强调色 */
@property(class, strong, readonly) NSColor *controlAccentColor API_AVAILABLE(macos(10.14));
/** 当前控件色调 */
@property(class, readonly) NSControlTint currentControlTint;

/**
 * @brief 根据控件色调返回颜色
 *
 * @param controlTint    控件色调
 * @return               颜色
 */
+ (NSColor *)colorForControlTint:(NSControlTint)controlTint API_DEPRECATED("NSControlTint不描述可用的所有控件强调颜色。请改用+[NSColor controlAccentColor]。", macos(10.0, 11.0));

/** 突出颜色 */
@property(class, strong, readonly) NSColor *highlightColor;
/** 阴影颜色 */
@property(class, strong, readonly) NSColor *shadowColor;

/**
 * @brief 使用给定的参数生成突出颜色
 *
 * @param val    突出级别,有效范围为0.0到1.0。
 * @return       生成的突出颜色或nil(如果无法生成)
 */
- (nullable NSColor *)highlightWithLevel:(CGFloat)val;

/**
 * @brief 使用给定的参数生成阴影颜色
 *
 * @param val    阴影级别,有效范围为0.0到1.0。
 * @return       生成的阴影颜色或nil(如果无法生成)
 */
- (nullable NSColor *)shadowWithLevel:(CGFloat)val;

/**
 * @brief 返回具有特定系统效果的颜色
 *
 * @param systemEffect    系统效果
 * @return                具有特定系统效果的颜色
 */
- (NSColor *)colorWithSystemEffect:(NSColorSystemEffect)systemEffect API_AVAILABLE(macos(10.14));

/**
 * @brief 通过在图形上下文中设置颜色来指定填充和描边颜色
 */
- (void)set;

/**
 * @brief 指定该颜色用于填充路径
 */
- (void)setFill;

/**
 * @brief 指定该颜色用于描边路径
 */
- (void)setStroke;

/**
 * @brief 返回与使用分数混合的当前颜色的混合版本,并与另一个颜色混合
 *
 * @param fraction    指定两个颜色之间混合的分数。要从当前颜色混合另一个颜色,请指定0.0到1.0之间的值。
 * @param color       用于混合的另一个颜色
 * @return            指定分数混合的两个颜色的结果颜色
 */
- (nullable NSColor *)blendedColorWithFraction:(CGFloat)fraction ofColor:(NSColor *)color;

/**
 * @brief 返回具有给定透明度的当前颜色
 *
 * @param alpha    指定当前颜色的透明度,有效范围为0.0(完全透明)到1.0(完全不透明)
 * @return         具有给定透明度的当前颜色
 */
- (NSColor *)colorWithAlphaComponent:(CGFloat)alpha;

/** 颜色列表名称组件 */
@property(readonly, copy) NSColorListName catalogNameComponent;
/** 颜色名称组件 */
@property(readonly, copy) NSColorName colorNameComponent;
/** 本地化的颜色列表名称组件 */
@property(readonly, copy) NSString *localizedCatalogNameComponent;
/** 本地化的颜色名称组件 */
@property(readonly, copy) NSString *localizedColorNameComponent;
/** 红色分量值 */
@property(readonly) CGFloat redComponent;
/** 绿色分量值 */
@property(readonly) CGFloat greenComponent;
/** 蓝色分量值 */
@property(readonly) CGFloat blueComponent;
/**

@brief 获取颜色的RGBA值
@param red 红色通道的值,传入NULL表示不需要获取该值
@param green 绿色通道的值,传入NULL表示不需要获取该值
@param blue 蓝色通道的值,传入NULL表示不需要获取该值
@param alpha 透明度通道的值,传入NULL表示不需要获取该值
*/
- (void)getRed:(nullable CGFloat *)red green:(nullable CGFloat *)green blue:(nullable CGFloat *)blue alpha:(nullable CGFloat *)alpha;

/** 色度组件 */
@property(readonly) CGFloat hueComponent;
/** 饱和度组件 */
@property(readonly) CGFloat saturationComponent;
/** 亮度组件 */
@property(readonly) CGFloat brightnessComponent;

/**
 * @brief 返回颜色组件的值
 *
 * @param hue          如果非NULL,则此方法将hueComponent(0.0-1.0之间)的当前值存储在* hue中。
 * @param saturation   如果非NULL,则此方法将saturationComponent(0.0-1.0之间)的当前值存储在* saturation中。
 * @param brightness   如果非NULL,则此方法将brightnessComponent(0.0-1.0之间)的当前值存储在* brightness中。
 * @param alpha        如果非NULL,则此方法将alphaComponent(0.0-1.0之间)的当前值存储在* alpha中。
 */
- (void)getHue:(nullable CGFloat *)hue saturation:(nullable CGFloat *)saturation
    brightness:(nullable CGFloat *)brightness alpha:(nullable CGFloat *)alpha;

/** 白色组件 */
@property(readonly) CGFloat whiteComponent;
/**
 * @brief 返回颜色组件的值
 *
 * @param white    如果非NULL,则此方法将whiteComponent(0.0-1.0之间)的当前值存储在* white中。
 * @param alpha    如果非NULL,则此方法将alphaComponent(0.0-1.0之间)的当前值存储在* alpha中。
 */
- (void)getWhite:(nullable CGFloat *)white alpha:(nullable CGFloat *)alpha;

/** 青色组件 */
@property(readonly) CGFloat cyanComponent;
/** 洋红色组件 */
@property(readonly) CGFloat magentaComponent;
/** 黄色组件 */
@property(readonly) CGFloat yellowComponent;
/** 黑色组件 */
@property(readonly) CGFloat blackComponent;
/**
 * @brief 返回颜色组件的值
 *
 * @param cyan       如果非NULL,则此方法将cyanComponent(0.0-1.0之间)的当前值存储在* cyan中。
 * @param magenta    如果非NULL,则此方法将magentaComponent(0.0-1.0之间)的当前值存储在* magenta中。
 * @param yellow     如果非NULL,则此方法将yellowComponent(0.0-1.0之间)的当前值存储在* yellow中。
 * @param black      如果非NULL,则此方法将blackComponent(0.0-1.0之间)的当前值存储在* black中。
 * @param alpha      如果非NULL,则此方法将alphaComponent(0.0-1.0之间)的当前值存储在* alpha中。
 */
- (void)getCyan:(nullable CGFloat *)cyan magenta:(nullable CGFloat *)magenta
         yellow:(nullable CGFloat *)yellow black:(nullable CGFloat *)black
          alpha:(nullable CGFloat *)alpha;

/** 颜色空间 */
@property(readonly, strong) NSColorSpace *colorSpace;
/** 组件数 */
@property(readonly) NSInteger numberOfComponents;

/**
 * @brief 返回颜色的组件值
 *
 * @param components    包含颜色组件值的数组,必须具有不少于numberOfComponents的条目。
 */
- (void)getComponents:(CGFloat *)components;

/** 图案图像 */
@property(readonly, strong) NSImage *patternImage;
/** Alpha值 */
@property(readonly) CGFloat alphaComponent;

/**
 * @brief 从指定的粘贴板返回颜色
 *
 * @param pasteBoard    包含颜色数据的粘贴板。如果为nil,则此方法返回nil。
 * @return              从粘贴板中提取的颜色。如果无法提取颜色,或者pasteBoard为nil,则此方法返回nil。
 */
+ (nullable NSColor *)colorFromPasteboard:(NSPasteboard *)pasteBoard;

/**
 * @brief 将颜色写入指定的粘贴板
 *
 * @param pasteBoard    颜色要写入的粘贴板。
 */
- (void)writeToPasteboard:(NSPasteboard *)pasteBoard;

/**
 * @brief 在给定矩形中绘制颜色样本
 *
 * @param rect    绘制样本的矩形
 */
- (void)drawSwatchInRect:(NSRect)rect;

/**
 * @brief 使用给定Core Graphics颜色创建并返回新的NSColor对象
 *
 * @param cgColor    要用于新颜色的Core Graphics颜色
 * @return           新的NSColor对象,由cgColor指定
 */
+ (nullable NSColor *)colorWithCGColor:(CGColorRef)cgColor API_AVAILABLE(macos(10.8));

/** Core Graphics颜色 */
@property(readonly) CGColorRef CGColor NS_RETURNS_INNER_POINTER API_AVAILABLE(macos(10.8));
/** 是否忽略Alpha通道 */
@property(class) BOOL ignoresAlpha;

@end

@interface NSColor (NSDeprecated)

/** 控件高亮颜色 */
@property(class, strong, readonly) NSColor *controlHighlightColor API_DEPRECATED("Use a color that matches the semantics being used, such as `separatorColor`", macos(10.0, 11.0));
/** 控件轻高亮颜色 */
@property(class, strong, readonly) NSColor *controlLightHighlightColor API_DEPRECATED("Use a color that matches the semantics being used, such as `separatorColor`", macos(10.0, 11.0));
/** 控件阴影颜色 */
@property(class, strong, readonly) NSColor *controlShadowColor API_DEPRECATED("Use a color that matches the semantics being used, such as `separatorColor`", macos(10.0, 11.0));
/** 控件深阴影颜色 */
@property(class, strong, readonly) NSColor *controlDarkShadowColor API_DEPRECATED("Use a color that matches the semantics being used, such as `separatorColor`", macos(10.0, 11.0));
/** 滚动条颜色 */
@property(class, strong, readonly) NSColor *scrollBarColor API_DEPRECATED("Use NSScroller instead", macos(10.0, 11.0));
/** 滑块颜色 */
@property(class, strong, readonly) NSColor *knobColor API_DEPRECATED("Use NSScroller instead", macos(10.0, 11.0));
/** 选中的滑块颜色 */
@property(class, strong, readonly) NSColor *selectedKnobColor API_DEPRECATED("Use NSScroller instead", macos(10.0, 11.0));
/** 窗口框架颜色 */
@property(class, strong, readonly) NSColor *windowFrameColor API_DEPRECATED("Use NSVisualEffectMaterialTitlebar", macos(10.0, 11.0));
/** 选中的菜单项颜色 */
@property(class, strong, readonly) NSColor *selectedMenuItemColor API_DEPRECATED("Use NSVisualEffectMaterialSelection", macos(10.0, 11.0));
/** 表头颜色 */
@property(class, strong, readonly) NSColor *headerColor API_DEPRECATED("Use NSVisualEffectMaterialHeaderView", macos(10.0, 11.0));
/** 次要选中控件颜色 */
@property(class, strong, readonly) NSColor *secondarySelectedControlColor API_DEPRECATED_WITH_REPLACEMENT("unemphasizedSelectedContentBackgroundColor", macos(10.1, 11.0));
/** 备用选中控件颜色 */
@property(class, strong, readonly) NSColor *alternateSelectedControlColor API_DEPRECATED_WITH_REPLACEMENT("selectedContentBackgroundColor", macos(10.2, 11.0));
/** 控件交替行背景颜色 */
@property(class, strong, readonly) NSArray<NSColor *> *controlAlternatingRowBackgroundColors API_DEPRECATED_WITH_REPLACEMENT("alternatingContentBackgroundColors", macos(10.3, 11.0));
/** 颜色空间名称 */
@property(readonly, copy) NSColorSpaceName colorSpaceName API_DEPRECATED("Use -type and NSColorType instead", macos(10.0,10.14));

/**
 * @brief 返回使用指定颜色空间的新NSColor对象
 *
 * @param name                颜色空间名称,如果为nil,则使用设备的默认颜色空间。
 * @param deviceDescription   设备描述字典,如果为nil,则使用当前设备。
 * @return                    使用指定颜色空间的新NSColor对象,或者如果无法转换颜色,则返回nil。
 */
- (nullable NSColor *)colorUsingColorSpaceName:(nullable NSColorSpaceName)name device:(nullable NSDictionary<NSDeviceDescriptionKey, id> *)deviceDescription API_DEPRECATED("Use -colorUsingType: or -colorUsingColorSpace: instead", macos(10.0,10.14));

/**
 * @brief 返回使用指定颜色空间的新NSColor对象
 *
 * @param name    颜色空间名称,如果为nil,则使用设备的默认颜色空间。
 * @return        使用指定颜色空间的新NSColor对象,或者如果无法转换颜色,则返回nil。
 */
- (nullable NSColor *)colorUsingColorSpaceName:(NSColorSpaceName)name API_DEPRECATED("Use -colorUsingType: or -colorUsingColorSpace: instead", macos(10.0,10.14));

@end

// 添加了一些与QuartzCore框架相关的方法。
@interface NSColor (NSQuartzCoreAdditions)

/**
 * @brief 从指定的CI颜色创建并返回新的NSColor对象
 *
 * @param color    要用于新颜色的CI颜色
 * @return         新的NSColor对象,由color指定
 */
+ (NSColor *)colorWithCIColor:(CIColor *)color;

@end

// 添加了一些与AppKit框架相关的方法。
@interface CIColor (NSAppKitAdditions)

/**
 * @brief 使用指定颜色创建并返回新的NSColor对象
 *
 * @param color    要用于新颜色的颜色对象
 * @return         新的NSColor对象,由color指定
 */
- (nullable instancetype)initWithColor:(NSColor *)color;

@end

@interface NSCoder(NSAppKitColorExtensions)

/**
 * @brief 解码为NSColor对象
 *
 * @return    解码后的NSColor对象
 */
- (null_unspecified NSColor *)decodeNXColor API_DEPRECATED("", macos(10.0,10.9));

@end

// 系统颜色更改通知
APPKIT_EXTERN NSNotificationName NSSystemColorsDidChangeNotification;
posted @ 2023-04-20 11:20  CH520  阅读(194)  评论(0编辑  收藏  举报