NSColor

Struct NSColor 

Source
pub struct NSColor { /* private fields */ }
Available on crate feature NSColor only.
Expand description

Implementations§

Source§

impl NSColor

This impl block contains no items.

NSAccessibilityColorConformance.

Source§

impl NSColor

Source

pub fn init(this: Allocated<Self>) -> Retained<Self>

Source

pub unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>

§Safety

coder possibly has further requirements.

Source

pub unsafe fn colorWithColorSpace_components_count( space: &NSColorSpace, components: NonNull<CGFloat>, number_of_components: NSInteger, ) -> Retained<NSColor>

Available on crate features NSColorSpace and objc2-core-foundation only.
§Safety

components must be a valid pointer.

Source

pub fn colorWithSRGBRed_green_blue_alpha( red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithGenericGamma22White_alpha( white: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithDisplayP3Red_green_blue_alpha( red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithWhite_alpha(white: CGFloat, alpha: CGFloat) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithRed_green_blue_alpha( red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithHue_saturation_brightness_alpha( hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithColorSpace_hue_saturation_brightness_alpha( space: &NSColorSpace, hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate features NSColorSpace and objc2-core-foundation only.
Source

pub fn colorWithCatalogName_colorName( list_name: &NSColorListName, color_name: &NSColorName, ) -> Option<Retained<NSColor>>

Available on crate feature NSColorList only.
Source

pub fn colorNamed_bundle( name: &NSColorName, bundle: Option<&NSBundle>, ) -> Option<Retained<NSColor>>

Available on crate feature NSColorList only.
Source

pub fn colorNamed(name: &NSColorName) -> Option<Retained<NSColor>>

Available on crate feature NSColorList only.
Source

pub unsafe fn colorWithName_dynamicProvider( color_name: Option<&NSColorName>, dynamic_provider: &DynBlock<dyn Fn(NonNull<NSAppearance>) -> NonNull<NSColor>>, ) -> Retained<NSColor>

Available on crate features NSAppearance and NSColorList and block2 only.
§Safety

dynamic_provider block’s return must be a valid pointer.

Source

pub fn colorWithDeviceWhite_alpha( white: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithDeviceRed_green_blue_alpha( red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithDeviceHue_saturation_brightness_alpha( hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithDeviceCyan_magenta_yellow_black_alpha( cyan: CGFloat, magenta: CGFloat, yellow: CGFloat, black: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithCalibratedWhite_alpha( white: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithCalibratedRed_green_blue_alpha( red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithCalibratedHue_saturation_brightness_alpha( hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithPatternImage(image: &NSImage) -> Retained<NSColor>

Available on crate feature NSImage only.
Source

pub fn type(&self) -> NSColorType

Source

pub fn colorUsingType(&self, type: NSColorType) -> Option<Retained<NSColor>>

Source

pub fn colorUsingColorSpace( &self, space: &NSColorSpace, ) -> Option<Retained<NSColor>>

Available on crate feature NSColorSpace only.
Source

pub fn colorWithRed_green_blue_alpha_exposure( red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat, exposure: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.

Generates an HDR color in the extended sRGB colorspace by applying an exposure to the SDR color defined by the red, green, and blue components. The red, green, and blue components have a nominal range of [0..1], exposure is a value >= 0. To produce an HDR color, we process the given color in a linear color space, multiplying component values by 2^exposure. The produced color will have a contentHeadroom equal to the linearized exposure value. Each whole value of exposure produces a color that is twice as bright.

Source

pub fn colorWithRed_green_blue_alpha_linearExposure( red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat, linear_exposure: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.

Generates an HDR color in the extended sRGB colorspace by applying an exposure to the SDR color defined by the red, green, and blue components. The red, green, and blue components have a nominal range of [0..1], linearExposure is a value >= 1. To produce an HDR color, we process the given color in a linear color space, multiplying component values by linearExposure . The produced color will have a contentHeadroom equal to linearExposure. Each doubling of linearExposure produces a color that is twice as bright.

Source

pub fn colorByApplyingContentHeadroom( &self, content_headroom: CGFloat, ) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.

Reinterpret the color by applying a new contentHeadroom without changing the color components. Changing the contentHeadroom redefines the color relative to a different peak white, changing its behavior under tone mapping and the result of calling standardDynamicRangeColor. The new color will have a contentHeadroom >= 1.0. If called on a color with a color space that does not support extended range, or does not have an equivalent extended range counterpart, this will return self.

Source

pub fn standardDynamicRangeColor(&self) -> Retained<NSColor>

In some cases it is useful to recover the color that was base the SDR color that was exposed to generate an HDR color. If a color’s linearExposure is > 1, then this will return the base SDR color. If the color is not an HDR color, this will return self.

Source

pub fn blackColor() -> Retained<NSColor>

Source

pub fn darkGrayColor() -> Retained<NSColor>

Source

pub fn lightGrayColor() -> Retained<NSColor>

Source

pub fn whiteColor() -> Retained<NSColor>

Source

pub fn grayColor() -> Retained<NSColor>

Source

pub fn redColor() -> Retained<NSColor>

Source

pub fn greenColor() -> Retained<NSColor>

Source

pub fn blueColor() -> Retained<NSColor>

Source

pub fn cyanColor() -> Retained<NSColor>

Source

pub fn yellowColor() -> Retained<NSColor>

Source

pub fn magentaColor() -> Retained<NSColor>

Source

pub fn orangeColor() -> Retained<NSColor>

Source

pub fn purpleColor() -> Retained<NSColor>

Source

pub fn brownColor() -> Retained<NSColor>

Source

pub fn clearColor() -> Retained<NSColor>

Source

pub fn labelColor() -> Retained<NSColor>

Source

pub fn secondaryLabelColor() -> Retained<NSColor>

Source

pub fn tertiaryLabelColor() -> Retained<NSColor>

Source

pub fn quaternaryLabelColor() -> Retained<NSColor>

Source

pub fn quinaryLabelColor() -> Retained<NSColor>

Source

pub fn linkColor() -> Retained<NSColor>

Used for large scale images or subtle decorative elements; not for general foreground content.

Source

pub fn placeholderTextColor() -> Retained<NSColor>

Source

pub fn windowFrameTextColor() -> Retained<NSColor>

Source

pub fn selectedMenuItemTextColor() -> Retained<NSColor>

Source

pub fn alternateSelectedControlTextColor() -> Retained<NSColor>

Source

pub fn headerTextColor() -> Retained<NSColor>

Source

pub fn separatorColor() -> Retained<NSColor>

Source

pub fn gridColor() -> Retained<NSColor>

Source

pub fn windowBackgroundColor() -> Retained<NSColor>

Source

pub fn underPageBackgroundColor() -> Retained<NSColor>

Source

pub fn controlBackgroundColor() -> Retained<NSColor>

Source

pub fn selectedContentBackgroundColor() -> Retained<NSColor>

Source

pub fn unemphasizedSelectedContentBackgroundColor() -> Retained<NSColor>

Source

pub fn alternatingContentBackgroundColors() -> Retained<NSArray<NSColor>>

Source

pub fn findHighlightColor() -> Retained<NSColor>

Source

pub fn textColor() -> Retained<NSColor>

Source

pub fn textBackgroundColor() -> Retained<NSColor>

Source

pub fn textInsertionPointColor() -> Retained<NSColor>

Source

pub fn selectedTextColor() -> Retained<NSColor>

Source

pub fn selectedTextBackgroundColor() -> Retained<NSColor>

Source

pub fn unemphasizedSelectedTextBackgroundColor() -> Retained<NSColor>

Source

pub fn unemphasizedSelectedTextColor() -> Retained<NSColor>

Source

pub fn controlColor() -> Retained<NSColor>

Source

pub fn controlTextColor() -> Retained<NSColor>

Source

pub fn selectedControlColor() -> Retained<NSColor>

Source

pub fn selectedControlTextColor() -> Retained<NSColor>

Source

pub fn disabledControlTextColor() -> Retained<NSColor>

Source

pub fn keyboardFocusIndicatorColor() -> Retained<NSColor>

Source

pub fn scrubberTexturedBackgroundColor() -> Retained<NSColor>

Source

pub fn systemRedColor() -> Retained<NSColor>

Source

pub fn systemGreenColor() -> Retained<NSColor>

Source

pub fn systemBlueColor() -> Retained<NSColor>

Source

pub fn systemOrangeColor() -> Retained<NSColor>

Source

pub fn systemYellowColor() -> Retained<NSColor>

Source

pub fn systemBrownColor() -> Retained<NSColor>

Source

pub fn systemPinkColor() -> Retained<NSColor>

Source

pub fn systemPurpleColor() -> Retained<NSColor>

Source

pub fn systemGrayColor() -> Retained<NSColor>

Source

pub fn systemTealColor() -> Retained<NSColor>

Source

pub fn systemIndigoColor() -> Retained<NSColor>

Source

pub fn systemMintColor() -> Retained<NSColor>

Source

pub fn systemCyanColor() -> Retained<NSColor>

Source

pub fn systemFillColor() -> Retained<NSColor>

Fill colors for UI elements. These are meant to be used over the background colors, since their alpha component is less than 1.

systemFillColor is appropriate for filling thin shapes, such as the track of a slider.

Source

pub fn secondarySystemFillColor() -> Retained<NSColor>

secondarySystemFillColor is appropriate for filling small-size shapes, such as the backing of a progress indicator.

Source

pub fn tertiarySystemFillColor() -> Retained<NSColor>

tertiarySystemFillColor is appropriate for filling medium-size shapes, such as the backing of a switch.

Source

pub fn quaternarySystemFillColor() -> Retained<NSColor>

quaternarySystemFillColor is appropriate for filling large areas, such as a group box or tab pane.

Source

pub fn quinarySystemFillColor() -> Retained<NSColor>

quinarySystemFillColor is appropriate for filling large areas that require subtle emphasis, such as content of a form..

Source

pub fn controlAccentColor() -> Retained<NSColor>

A dynamic color that reflects the user’s current preferred accent color. This color automatically updates when the accent color preference changes. Do not make assumptions about the color space of this color, which may change across releases.

Source

pub fn currentControlTint() -> NSControlTint

Available on crate feature NSCell only.
Source

pub fn colorForControlTint(control_tint: NSControlTint) -> Retained<NSColor>

👎Deprecated: NSControlTint does not describe the full range of available control accent colors. Use +[NSColor controlAccentColor] instead.
Available on crate feature NSCell only.
Source

pub fn highlightColor() -> Retained<NSColor>

Source

pub fn shadowColor() -> Retained<NSColor>

Source

pub fn highlightWithLevel(&self, val: CGFloat) -> Option<Retained<NSColor>>

Available on crate feature objc2-core-foundation only.
Source

pub fn shadowWithLevel(&self, val: CGFloat) -> Option<Retained<NSColor>>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithSystemEffect( &self, system_effect: NSColorSystemEffect, ) -> Retained<NSColor>

Returns a color representing the base color with a system defined effect applied to it. This color is safe to create before draw time, as the resolution of the final color only happens when being -set, retrieving its CGColor, resolving with -colorWithType:, etc. The return color type is .named.

Source

pub fn set(&self)

Source

pub fn setFill(&self)

Source

pub fn setStroke(&self)

Source

pub fn blendedColorWithFraction_ofColor( &self, fraction: CGFloat, color: &NSColor, ) -> Option<Retained<NSColor>>

Available on crate feature objc2-core-foundation only.
Source

pub fn colorWithAlphaComponent(&self, alpha: CGFloat) -> Retained<NSColor>

Available on crate feature objc2-core-foundation only.
Source

pub fn catalogNameComponent(&self) -> Retained<NSColorListName>

Available on crate feature NSColorList only.
  • Methods to get various components of colors. Not all of the methods apply to all colors; if called, they raise. **
Source

pub fn colorNameComponent(&self) -> Retained<NSColorName>

Available on crate feature NSColorList only.
Source

pub fn localizedCatalogNameComponent(&self) -> Retained<NSString>

Source

pub fn localizedColorNameComponent(&self) -> Retained<NSString>

Source

pub fn redComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn greenComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn blueComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn getRed_green_blue_alpha( &self, red: *mut CGFloat, green: *mut CGFloat, blue: *mut CGFloat, alpha: *mut CGFloat, )

Available on crate feature objc2-core-foundation only.
§Safety
  • red must be a valid pointer or null.
  • green must be a valid pointer or null.
  • blue must be a valid pointer or null.
  • alpha must be a valid pointer or null.
Source

pub fn hueComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn saturationComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn brightnessComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn getHue_saturation_brightness_alpha( &self, hue: *mut CGFloat, saturation: *mut CGFloat, brightness: *mut CGFloat, alpha: *mut CGFloat, )

Available on crate feature objc2-core-foundation only.
§Safety
  • hue must be a valid pointer or null.
  • saturation must be a valid pointer or null.
  • brightness must be a valid pointer or null.
  • alpha must be a valid pointer or null.
Source

pub fn whiteComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn getWhite_alpha(&self, white: *mut CGFloat, alpha: *mut CGFloat)

Available on crate feature objc2-core-foundation only.
§Safety
  • white must be a valid pointer or null.
  • alpha must be a valid pointer or null.
Source

pub fn cyanComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn magentaComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn yellowComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn blackComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn getCyan_magenta_yellow_black_alpha( &self, cyan: *mut CGFloat, magenta: *mut CGFloat, yellow: *mut CGFloat, black: *mut CGFloat, alpha: *mut CGFloat, )

Available on crate feature objc2-core-foundation only.
§Safety
  • cyan must be a valid pointer or null.
  • magenta must be a valid pointer or null.
  • yellow must be a valid pointer or null.
  • black must be a valid pointer or null.
  • alpha must be a valid pointer or null.
Source

pub fn colorSpace(&self) -> Retained<NSColorSpace>

Available on crate feature NSColorSpace only.
Source

pub fn numberOfComponents(&self) -> NSInteger

Source

pub unsafe fn getComponents(&self, components: NonNull<CGFloat>)

Available on crate feature objc2-core-foundation only.
§Safety

components must be a valid pointer.

Source

pub fn patternImage(&self) -> Retained<NSImage>

Available on crate feature NSImage only.
Source

pub fn alphaComponent(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.
Source

pub fn linearExposure(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.

For HDR colors, the linear brightness multiplier that was applied when generating the color. Colors created with an exposure by NSColor create CGColors that are tagged with a contentHeadroom value. While CGColors created without a contentHeadroom tag will return 0 from CGColorGetHeadroom, NSColors generated in a similar fashion return a linearExposure of 1.0.

Source

pub fn colorFromPasteboard( paste_board: &NSPasteboard, ) -> Option<Retained<NSColor>>

Available on crate feature NSPasteboard only.
Source

pub fn writeToPasteboard(&self, paste_board: &NSPasteboard)

Available on crate feature NSPasteboard only.
Source

pub fn drawSwatchInRect(&self, rect: NSRect)

Source

pub fn ignoresAlpha(mtm: MainThreadMarker) -> bool

👎Deprecated: Use showsAlpha in NSColorPanel and supportsAlpha in NSColorWell to control alpha behavior for individual controls.
Source

pub fn setIgnoresAlpha(ignores_alpha: bool, mtm: MainThreadMarker)

👎Deprecated: Use showsAlpha in NSColorPanel and supportsAlpha in NSColorWell to control alpha behavior for individual controls.

Setter for ignoresAlpha.

Source§

impl NSColor

Methods declared on superclass NSObject.

Source

pub fn new() -> Retained<Self>

Source§

impl NSColor

NSDeprecated.

Source

pub fn controlHighlightColor() -> Retained<NSColor>

👎Deprecated: Use a color that matches the semantics being used, such as separatorColor

Historically used as the inner border highlight color for beveled buttons. No longer used.

Source

pub fn controlLightHighlightColor() -> Retained<NSColor>

👎Deprecated: Use a color that matches the semantics being used, such as separatorColor

Historically used as the outer border highlight color for beveled buttons. No longer used.

Source

pub fn controlShadowColor() -> Retained<NSColor>

👎Deprecated: Use a color that matches the semantics being used, such as separatorColor

Historically used as the inner border shadow color for beveled buttons. No longer used.

Source

pub fn controlDarkShadowColor() -> Retained<NSColor>

👎Deprecated: Use a color that matches the semantics being used, such as separatorColor

Historically used as the outer border shadow color for beveled buttons. No longer used.

Source

pub fn scrollBarColor() -> Retained<NSColor>

👎Deprecated: Use NSScroller instead

Historically used as the color of scroll bars. No longer used.

Source

pub fn knobColor() -> Retained<NSColor>

👎Deprecated: Use NSScroller instead

Historically used as the color of scroll bar knobs. No longer used.

Source

pub fn selectedKnobColor() -> Retained<NSColor>

👎Deprecated: Use NSScroller instead

Historically used as the color of scroll bar knobs being dragged. No longer used.

Source

pub fn windowFrameColor() -> Retained<NSColor>

👎Deprecated: Use NSVisualEffectMaterialTitlebar

Historically used as the color of the window chrome, which is no longer able to be represented by a color. No longer used.

Source

pub fn selectedMenuItemColor() -> Retained<NSColor>

👎Deprecated: Use NSVisualEffectMaterialSelection

Historically used as the color of selected menu items, which is no longer a color but a tinted blur effect. No longer used.

Source

pub fn headerColor() -> Retained<NSColor>

👎Deprecated: Use NSVisualEffectMaterialHeaderView

Historically used as the color of table headers, which is no longer a color but a tinted blur effect.

Source

pub fn secondarySelectedControlColor() -> Retained<NSColor>

👎Deprecated

The background color of selected content or text that is unemphasized. Older alias for +unemphasizedSelectedContentBackgroundColor and +unemphasizedSelectedTextBackgroundColor

Source

pub fn alternateSelectedControlColor() -> Retained<NSColor>

👎Deprecated

The background color of selected and emphasized (focused) content: table views rows, collection views, etc. Older alias for +selectedContentBackgroundColor

Source

pub fn controlAlternatingRowBackgroundColors() -> Retained<NSArray<NSColor>>

👎Deprecated

The background colors for alternating content items: such as table view rows, collection view items. Older alias for +alternatingContentBackgroundColors

Source

pub fn colorSpaceName(&self) -> Retained<NSColorSpaceName>

👎Deprecated: Use -type and NSColorType instead
Available on crate feature NSGraphics only.
Source

pub unsafe fn colorUsingColorSpaceName_device( &self, name: Option<&NSColorSpaceName>, device_description: Option<&NSDictionary<NSDeviceDescriptionKey, AnyObject>>, ) -> Option<Retained<NSColor>>

👎Deprecated: Use -colorUsingType: or -colorUsingColorSpace: instead
Available on crate feature NSGraphics only.
§Safety

device_description generic should be of the correct type.

Source

pub fn colorUsingColorSpaceName( &self, name: &NSColorSpaceName, ) -> Option<Retained<NSColor>>

👎Deprecated: Use -colorUsingType: or -colorUsingColorSpace: instead
Available on crate feature NSGraphics only.
Source§

impl NSColor

This impl block contains no items.

NSQuartzCoreAdditions.

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

pub fn class(&self) -> &'static AnyClass

Available on crate feature NSAccessibilityConstants only.

Dynamically find the class of this object.

§Panics

May panic if the object is invalid (which may be the case for objects returned from unavailable init/new methods).

§Example

Check that an instance of NSObject has the precise class NSObject.

use objc2::ClassType;
use objc2::runtime::NSObject;

let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
Available on crate feature NSAccessibilityConstants only.

Use Ivar::load instead.

§Safety

The object must have an instance variable with the given name, and it must be of type T.

See Ivar::load_ptr for details surrounding this.

Source

pub fn downcast_ref<T>(&self) -> Option<&T>
where T: DowncastTarget,

Available on crate feature NSAccessibilityConstants only.

Attempt to downcast the object to a class of type T.

This is the reference-variant. Use Retained::downcast if you want to convert a retained object to another type.

§Mutable classes

Some classes have immutable and mutable variants, such as NSString and NSMutableString.

When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.

So using this method to convert a NSString to a NSMutableString, while not unsound, is generally frowned upon unless you created the string yourself, or the API explicitly documents the string to be mutable.

See Apple’s documentation on mutability and on isKindOfClass: for more details.

§Generic classes

Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.

You can, however, safely downcast to generic collections where all the type-parameters are AnyObject.

§Panics

This works internally by calling isKindOfClass:. That means that the object must have the instance method of that name, and an exception will be thrown (if CoreFoundation is linked) or the process will abort if that is not the case. In the vast majority of cases, you don’t need to worry about this, since both root objects NSObject and NSProxy implement this method.

§Examples

Cast an NSString back and forth from NSObject.

use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};

let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();

Try (and fail) to cast an NSObject to an NSString.

use objc2_foundation::{NSObject, NSString};

let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());

Try to cast to an array of strings.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();

This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.

Downcast when processing each element instead.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);

for elem in arr {
    if let Some(data) = elem.downcast_ref::<NSString>() {
        // handle `data`
    }
}

Trait Implementations§

Source§

impl AsRef<AnyObject> for NSColor

Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSColor> for NSColor

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSObject> for NSColor

Source§

fn as_ref(&self) -> &NSObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for NSColor

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for NSColor

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl ClassType for NSColor

Source§

const NAME: &'static str = "NSColor"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = NSObject

The superclass of this class. Read more
Source§

type ThreadKind = <<NSColor as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl CopyingHelper for NSColor

Source§

type Result = NSColor

The immutable counterpart of the type, or Self if the type has no immutable counterpart. Read more
Source§

impl Debug for NSColor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl DefaultRetained for NSColor

Source§

fn default_retained() -> Retained<Self>

The default Retained for a type. Read more
Source§

impl Deref for NSColor

Source§

type Target = NSObject

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for NSColor

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for NSColor

Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl NSAccessibilityColor for NSColor

Available on crate feature NSAccessibilityColor only.
Source§

fn accessibilityName(&self) -> Retained<NSString>
where Self: Sized + Message,

Returns a localized description of the color for use in accessibility attributes.
Source§

impl NSCoding for NSColor

Source§

unsafe fn encodeWithCoder(&self, coder: &NSCoder)
where Self: Sized + Message,

Safety Read more
Source§

unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>
where Self: Sized + Message,

Safety Read more
Source§

impl NSCopying for NSColor

Source§

fn copy(&self) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Returns a new instance that’s a copy of the receiver. Read more
Source§

unsafe fn copyWithZone(&self, zone: *mut NSZone) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Returns a new instance that’s a copy of the receiver. Read more
Source§

impl NSObjectProtocol for NSColor

Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl NSPasteboardReading for NSColor

Source§

fn readableTypesForPasteboard( pasteboard: &NSPasteboard, ) -> Retained<NSArray<NSPasteboardType>>
where Self: Sized + ClassType,

Available on crate feature NSPasteboard only.
Source§

fn readingOptionsForType_pasteboard( type: &NSPasteboardType, pasteboard: &NSPasteboard, ) -> NSPasteboardReadingOptions
where Self: Sized + ClassType,

Available on crate feature NSPasteboard only.
Source§

unsafe fn initWithPasteboardPropertyList_ofType( this: Allocated<Self>, property_list: &AnyObject, type: &NSPasteboardType, ) -> Option<Retained<Self>>
where Self: Sized + Message,

Available on crate feature NSPasteboard only.
Safety Read more
Source§

impl NSPasteboardWriting for NSColor

Source§

fn writableTypesForPasteboard( &self, pasteboard: &NSPasteboard, ) -> Retained<NSArray<NSPasteboardType>>
where Self: Sized + Message,

Available on crate feature NSPasteboard only.
Source§

fn writingOptionsForType_pasteboard( &self, type: &NSPasteboardType, pasteboard: &NSPasteboard, ) -> NSPasteboardWritingOptions
where Self: Sized + Message,

Available on crate feature NSPasteboard only.
Source§

fn pasteboardPropertyListForType( &self, type: &NSPasteboardType, ) -> Option<Retained<AnyObject>>
where Self: Sized + Message,

Available on crate feature NSPasteboard only.
Source§

impl NSSecureCoding for NSColor

Source§

impl PartialEq for NSColor

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for NSColor

Source§

const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for NSColor

Source§

impl Eq for NSColor

Source§

impl Send for NSColor

Source§

impl Sync for NSColor

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AnyThread for T
where T: ClassType<ThreadKind = dyn AnyThread + 'a> + ?Sized,

Source§

fn alloc() -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,