#[repr(C)]pub struct UIBarButtonItem { /* private fields */ }
UIBarButtonItem
and UIBarItem
only.Expand description
Implementations§
Source§impl UIBarButtonItem
impl UIBarButtonItem
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>
pub unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>
pub unsafe fn initWithImage_style_target_action( this: Allocated<Self>, image: Option<&UIImage>, style: UIBarButtonItemStyle, target: Option<&AnyObject>, action: Option<Sel>, ) -> Retained<Self>
UIImage
only.pub unsafe fn initWithImage_landscapeImagePhone_style_target_action( this: Allocated<Self>, image: Option<&UIImage>, landscape_image_phone: Option<&UIImage>, style: UIBarButtonItemStyle, target: Option<&AnyObject>, action: Option<Sel>, ) -> Retained<Self>
UIImage
only.pub unsafe fn initWithTitle_style_target_action( this: Allocated<Self>, title: Option<&NSString>, style: UIBarButtonItemStyle, target: Option<&AnyObject>, action: Option<Sel>, ) -> Retained<Self>
pub unsafe fn initWithBarButtonSystemItem_target_action( this: Allocated<Self>, system_item: UIBarButtonSystemItem, target: Option<&AnyObject>, action: Option<Sel>, ) -> Retained<Self>
pub unsafe fn initWithCustomView( this: Allocated<Self>, custom_view: &UIView, ) -> Retained<Self>
UIResponder
and UIView
only.Sourcepub unsafe fn initWithBarButtonSystemItem_primaryAction(
this: Allocated<Self>,
system_item: UIBarButtonSystemItem,
primary_action: Option<&UIAction>,
) -> Retained<Self>
Available on crate features UIAction
and UIMenuElement
only.
pub unsafe fn initWithBarButtonSystemItem_primaryAction( this: Allocated<Self>, system_item: UIBarButtonSystemItem, primary_action: Option<&UIAction>, ) -> Retained<Self>
UIAction
and UIMenuElement
only.Creates a bar button item for the given systemItem. The primaryAction is copied, and its title & image are ignored.
Sourcepub unsafe fn initWithPrimaryAction(
this: Allocated<Self>,
primary_action: Option<&UIAction>,
) -> Retained<Self>
Available on crate features UIAction
and UIMenuElement
only.
pub unsafe fn initWithPrimaryAction( this: Allocated<Self>, primary_action: Option<&UIAction>, ) -> Retained<Self>
UIAction
and UIMenuElement
only.Creates a plain-style bar button item from the properties of primaryAction. primaryAction is copied.
Available on crate features UIMenu
and UIMenuElement
only.
UIMenu
and UIMenuElement
only.Creates a bar button item for the given systemItem. The constructed item will present the menu immediately when touched.
Available on crate features UIMenu
and UIMenuElement
only.
UIMenu
and UIMenuElement
only.Creates a plain-style bar button item with the given title. The constructed item will present the menu immediately when touched.
Available on crate features UIImage
and UIMenu
and UIMenuElement
only.
UIImage
and UIMenu
and UIMenuElement
only.Creates a plain-style bar button item with the given image. The constructed item will present the menu immediately when touched.
Available on crate features UIAction
and UIMenu
and UIMenuElement
only.
UIAction
and UIMenu
and UIMenuElement
only.Creates a plain-style bar button item from the properties of primaryAction. primaryAction is copied.
Available on crate features UIAction
and UIMenu
and UIMenuElement
only.
UIAction
and UIMenu
and UIMenuElement
only.Creates a bar button item for the given systemItem. The primaryAction is copied, and its title & image are ignored.
Available on crate features UIImage
and UIMenu
and UIMenuElement
only.
UIImage
and UIMenu
and UIMenuElement
only.Creates a plain-style bar button item with the given title and image.
Sourcepub unsafe fn fixedSpaceItemOfWidth(
width: CGFloat,
mtm: MainThreadMarker,
) -> Retained<Self>
Available on crate feature objc2-core-foundation
only.
pub unsafe fn fixedSpaceItemOfWidth( width: CGFloat, mtm: MainThreadMarker, ) -> Retained<Self>
objc2-core-foundation
only.Construct a new fixed space item with the given width.
Sourcepub unsafe fn flexibleSpaceItem(mtm: MainThreadMarker) -> Retained<Self>
pub unsafe fn flexibleSpaceItem(mtm: MainThreadMarker) -> Retained<Self>
Construct a new flexible space item.
pub unsafe fn style(&self) -> UIBarButtonItemStyle
Sourcepub unsafe fn setStyle(&self, style: UIBarButtonItemStyle)
pub unsafe fn setStyle(&self, style: UIBarButtonItemStyle)
Setter for style
.
pub unsafe fn width(&self) -> CGFloat
objc2-core-foundation
only.Sourcepub unsafe fn setWidth(&self, width: CGFloat)
Available on crate feature objc2-core-foundation
only.
pub unsafe fn setWidth(&self, width: CGFloat)
objc2-core-foundation
only.Setter for width
.
pub unsafe fn possibleTitles(&self) -> Option<Retained<NSSet<NSString>>>
Sourcepub unsafe fn setPossibleTitles(
&self,
possible_titles: Option<&NSSet<NSString>>,
)
pub unsafe fn setPossibleTitles( &self, possible_titles: Option<&NSSet<NSString>>, )
Setter for possibleTitles
.
pub unsafe fn customView(&self) -> Option<Retained<UIView>>
UIResponder
and UIView
only.Sourcepub unsafe fn setCustomView(&self, custom_view: Option<&UIView>)
Available on crate features UIResponder
and UIView
only.
pub unsafe fn setCustomView(&self, custom_view: Option<&UIView>)
UIResponder
and UIView
only.Setter for customView
.
pub unsafe fn action(&self) -> Option<Sel>
pub unsafe fn target(&self) -> Option<Retained<AnyObject>>
Sourcepub unsafe fn setTarget(&self, target: Option<&AnyObject>)
pub unsafe fn setTarget(&self, target: Option<&AnyObject>)
This is a weak property.
Setter for target
.
Sourcepub unsafe fn primaryAction(&self) -> Option<Retained<UIAction>>
Available on crate features UIAction
and UIMenuElement
only.
pub unsafe fn primaryAction(&self) -> Option<Retained<UIAction>>
UIAction
and UIMenuElement
only.Set the primaryAction on this item, updating the title & image of the item if appropriate (primaryAction is non-nil, and this is not a system item). When primaryAction is non-nil, the target & action properties are ignored. If primaryAction is set to nil, the title & image properties are left unchanged.
Sourcepub unsafe fn setPrimaryAction(&self, primary_action: Option<&UIAction>)
Available on crate features UIAction
and UIMenuElement
only.
pub unsafe fn setPrimaryAction(&self, primary_action: Option<&UIAction>)
UIAction
and UIMenuElement
only.Setter for primaryAction
.
Available on crate features UIMenu
and UIMenuElement
only.
UIMenu
and UIMenuElement
only.When non-nil the menu is presented, the gesture used to trigger the menu is based on if the bar button item would normally trigger an action when tapped.
Sourcepub unsafe fn setMenu(&self, menu: Option<&UIMenu>)
Available on crate features UIMenu
and UIMenuElement
only.
pub unsafe fn setMenu(&self, menu: Option<&UIMenu>)
UIMenu
and UIMenuElement
only.Setter for menu
.
Sourcepub unsafe fn preferredMenuElementOrder(
&self,
) -> UIContextMenuConfigurationElementOrder
Available on crate feature UIContextMenuConfiguration
only.
pub unsafe fn preferredMenuElementOrder( &self, ) -> UIContextMenuConfigurationElementOrder
UIContextMenuConfiguration
only.Preferred menu element ordering strategy for menus displayed by this button.
Sourcepub unsafe fn setPreferredMenuElementOrder(
&self,
preferred_menu_element_order: UIContextMenuConfigurationElementOrder,
)
Available on crate feature UIContextMenuConfiguration
only.
pub unsafe fn setPreferredMenuElementOrder( &self, preferred_menu_element_order: UIContextMenuConfigurationElementOrder, )
UIContextMenuConfiguration
only.Setter for preferredMenuElementOrder
.
Sourcepub unsafe fn changesSelectionAsPrimaryAction(&self) -> bool
pub unsafe fn changesSelectionAsPrimaryAction(&self) -> bool
Indicates if the button changes selection as its primary action. This shows the menu as options for selection if a menu is populated and no action when tapped is enabled. If no menu is provided and no action is enabled when tapped, the item is toggled on and off for the primary action.
Sourcepub unsafe fn setChangesSelectionAsPrimaryAction(
&self,
changes_selection_as_primary_action: bool,
)
pub unsafe fn setChangesSelectionAsPrimaryAction( &self, changes_selection_as_primary_action: bool, )
Setter for changesSelectionAsPrimaryAction
.
pub unsafe fn isSelected(&self) -> bool
Sourcepub unsafe fn setSelected(&self, selected: bool)
pub unsafe fn setSelected(&self, selected: bool)
Setter for isSelected
.
Sourcepub unsafe fn isSymbolAnimationEnabled(&self) -> bool
pub unsafe fn isSymbolAnimationEnabled(&self) -> bool
Whether or not symbol animations are enabled for this bar button item.
Sourcepub unsafe fn setSymbolAnimationEnabled(&self, symbol_animation_enabled: bool)
pub unsafe fn setSymbolAnimationEnabled(&self, symbol_animation_enabled: bool)
Setter for isSymbolAnimationEnabled
.
Available on crate feature UIMenuElement
only.
UIMenuElement
only.A UIMenuElement that should substitute for the UIBarButtonItem when displayed in a menu.
Sourcepub unsafe fn setMenuRepresentation(
&self,
menu_representation: Option<&UIMenuElement>,
)
Available on crate feature UIMenuElement
only.
pub unsafe fn setMenuRepresentation( &self, menu_representation: Option<&UIMenuElement>, )
UIMenuElement
only.Setter for menuRepresentation
.
Sourcepub unsafe fn creatingFixedGroup(&self) -> Retained<UIBarButtonItemGroup>
Available on crate feature UIBarButtonItemGroup
only.
pub unsafe fn creatingFixedGroup(&self) -> Retained<UIBarButtonItemGroup>
UIBarButtonItemGroup
only.Create a fixed group containing this bar button item. UIBarButtonItems may only be in a single UIBarButtonItemGroup at a time, adding a bar button item to a group removes it from any previous group.
Sourcepub unsafe fn creatingMovableGroupWithCustomizationIdentifier(
&self,
customization_identifier: &NSString,
) -> Retained<UIBarButtonItemGroup>
Available on crate feature UIBarButtonItemGroup
only.
pub unsafe fn creatingMovableGroupWithCustomizationIdentifier( &self, customization_identifier: &NSString, ) -> Retained<UIBarButtonItemGroup>
UIBarButtonItemGroup
only.Create a movable group containing this bar button item. UIBarButtonItems may only be in a single UIBarButtonItemGroup at a time, adding a bar button item to a group removes it from any previous group.
Sourcepub unsafe fn creatingOptionalGroupWithCustomizationIdentifier_inDefaultCustomization(
&self,
customization_identifier: &NSString,
in_default_customization: bool,
) -> Retained<UIBarButtonItemGroup>
Available on crate feature UIBarButtonItemGroup
only.
pub unsafe fn creatingOptionalGroupWithCustomizationIdentifier_inDefaultCustomization( &self, customization_identifier: &NSString, in_default_customization: bool, ) -> Retained<UIBarButtonItemGroup>
UIBarButtonItemGroup
only.Create an optional group containing this bar button item. UIBarButtonItems may only be in a single UIBarButtonItemGroup at a time, adding a bar button item to a group removes it from any previous group.
pub unsafe fn setBackgroundImage_forState_barMetrics( &self, background_image: Option<&UIImage>, state: UIControlState, bar_metrics: UIBarMetrics, )
UIBarCommon
and UIControl
and UIImage
only.pub unsafe fn backgroundImageForState_barMetrics( &self, state: UIControlState, bar_metrics: UIBarMetrics, ) -> Option<Retained<UIImage>>
UIBarCommon
and UIControl
and UIImage
only.pub unsafe fn setBackgroundImage_forState_style_barMetrics( &self, background_image: Option<&UIImage>, state: UIControlState, style: UIBarButtonItemStyle, bar_metrics: UIBarMetrics, )
UIBarCommon
and UIControl
and UIImage
only.pub unsafe fn backgroundImageForState_style_barMetrics( &self, state: UIControlState, style: UIBarButtonItemStyle, bar_metrics: UIBarMetrics, ) -> Option<Retained<UIImage>>
UIBarCommon
and UIControl
and UIImage
only.pub unsafe fn tintColor(&self) -> Option<Retained<UIColor>>
UIColor
only.Sourcepub unsafe fn setTintColor(&self, tint_color: Option<&UIColor>)
Available on crate feature UIColor
only.
pub unsafe fn setTintColor(&self, tint_color: Option<&UIColor>)
UIColor
only.Setter for tintColor
.
pub unsafe fn setBackgroundVerticalPositionAdjustment_forBarMetrics( &self, adjustment: CGFloat, bar_metrics: UIBarMetrics, )
UIBarCommon
and objc2-core-foundation
only.pub unsafe fn backgroundVerticalPositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> CGFloat
UIBarCommon
and objc2-core-foundation
only.pub unsafe fn setTitlePositionAdjustment_forBarMetrics( &self, adjustment: UIOffset, bar_metrics: UIBarMetrics, )
UIBarCommon
and UIGeometry
and objc2-core-foundation
only.pub unsafe fn titlePositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> UIOffset
UIBarCommon
and UIGeometry
and objc2-core-foundation
only.pub unsafe fn setBackButtonBackgroundImage_forState_barMetrics( &self, background_image: Option<&UIImage>, state: UIControlState, bar_metrics: UIBarMetrics, )
UIBarCommon
and UIControl
and UIImage
only.pub unsafe fn backButtonBackgroundImageForState_barMetrics( &self, state: UIControlState, bar_metrics: UIBarMetrics, ) -> Option<Retained<UIImage>>
UIBarCommon
and UIControl
and UIImage
only.pub unsafe fn setBackButtonTitlePositionAdjustment_forBarMetrics( &self, adjustment: UIOffset, bar_metrics: UIBarMetrics, )
UIBarCommon
and UIGeometry
and objc2-core-foundation
only.pub unsafe fn backButtonTitlePositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> UIOffset
UIBarCommon
and UIGeometry
and objc2-core-foundation
only.pub unsafe fn setBackButtonBackgroundVerticalPositionAdjustment_forBarMetrics( &self, adjustment: CGFloat, bar_metrics: UIBarMetrics, )
UIBarCommon
and objc2-core-foundation
only.pub unsafe fn backButtonBackgroundVerticalPositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> CGFloat
UIBarCommon
and objc2-core-foundation
only.Source§impl UIBarButtonItem
Methods declared on superclass NSObject
.
impl UIBarButtonItem
Methods declared on superclass NSObject
.
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>
impl UIBarButtonItem
SpringLoading.
Source§impl UIBarButtonItem
impl UIBarButtonItem
Sourcepub unsafe fn addSymbolEffect(&self, symbol_effect: &NSSymbolEffect)
Available on crate feature objc2-symbols
only.
pub unsafe fn addSymbolEffect(&self, symbol_effect: &NSSymbolEffect)
objc2-symbols
only.Adds a symbol effect to the bar button item with default options and animation. Only a subset of symbol effects are supported; Appear and Disappear effects, for example, are unsupported, and will assert.
Sourcepub unsafe fn addSymbolEffect_options(
&self,
symbol_effect: &NSSymbolEffect,
options: &NSSymbolEffectOptions,
)
Available on crate feature objc2-symbols
only.
pub unsafe fn addSymbolEffect_options( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, )
objc2-symbols
only.Adds a symbol effect to the bar button item with specified options and default animation. Only a subset of symbol effects are supported; Appear and Disappear effects, for example, are unsupported, and will assert.
Sourcepub unsafe fn addSymbolEffect_options_animated(
&self,
symbol_effect: &NSSymbolEffect,
options: &NSSymbolEffectOptions,
animated: bool,
)
Available on crate feature objc2-symbols
only.
pub unsafe fn addSymbolEffect_options_animated( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, animated: bool, )
objc2-symbols
only.Adds a symbol effect to the bar button item with specified options and animation. Only a subset of symbol effects are supported; Appear and Disappear effects, for example, are unsupported, and will assert.
Sourcepub unsafe fn removeSymbolEffectOfType(&self, symbol_effect: &NSSymbolEffect)
Available on crate feature objc2-symbols
only.
pub unsafe fn removeSymbolEffectOfType(&self, symbol_effect: &NSSymbolEffect)
objc2-symbols
only.Removes from the bar button item the symbol effect matching the type of effect passed in, with default options and animation.
Sourcepub unsafe fn removeSymbolEffectOfType_options(
&self,
symbol_effect: &NSSymbolEffect,
options: &NSSymbolEffectOptions,
)
Available on crate feature objc2-symbols
only.
pub unsafe fn removeSymbolEffectOfType_options( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, )
objc2-symbols
only.Removes from the bar button item the symbol effect matching the type of effect passed in, with specified options and default animation.
Sourcepub unsafe fn removeSymbolEffectOfType_options_animated(
&self,
symbol_effect: &NSSymbolEffect,
options: &NSSymbolEffectOptions,
animated: bool,
)
Available on crate feature objc2-symbols
only.
pub unsafe fn removeSymbolEffectOfType_options_animated( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, animated: bool, )
objc2-symbols
only.Removes from the bar button item the symbol effect matching the type of effect passed in, with specified options and animation.
Sourcepub unsafe fn removeAllSymbolEffects(&self)
pub unsafe fn removeAllSymbolEffects(&self)
Removes all symbol effects from the bar button item with default options and animation.
Sourcepub unsafe fn removeAllSymbolEffectsWithOptions(
&self,
options: &NSSymbolEffectOptions,
)
Available on crate feature objc2-symbols
only.
pub unsafe fn removeAllSymbolEffectsWithOptions( &self, options: &NSSymbolEffectOptions, )
objc2-symbols
only.Removes all symbol effects from the bar button item with specified options and default animation.
Sourcepub unsafe fn removeAllSymbolEffectsWithOptions_animated(
&self,
options: &NSSymbolEffectOptions,
animated: bool,
)
Available on crate feature objc2-symbols
only.
pub unsafe fn removeAllSymbolEffectsWithOptions_animated( &self, options: &NSSymbolEffectOptions, animated: bool, )
objc2-symbols
only.Removes all symbol effects from the bar button item with specified options and animation.
Sourcepub unsafe fn setSymbolImage_withContentTransition(
&self,
symbol_image: &UIImage,
transition: &NSSymbolContentTransition,
)
Available on crate features UIImage
and objc2-symbols
only.
pub unsafe fn setSymbolImage_withContentTransition( &self, symbol_image: &UIImage, transition: &NSSymbolContentTransition, )
UIImage
and objc2-symbols
only.Sets the symbol image on the bar button item with a symbol content transition and default options. Passing in a non-symbol image will result in undefined behavior.
Sourcepub unsafe fn setSymbolImage_withContentTransition_options(
&self,
symbol_image: &UIImage,
transition: &NSSymbolContentTransition,
options: &NSSymbolEffectOptions,
)
Available on crate features UIImage
and objc2-symbols
only.
pub unsafe fn setSymbolImage_withContentTransition_options( &self, symbol_image: &UIImage, transition: &NSSymbolContentTransition, options: &NSSymbolEffectOptions, )
UIImage
and objc2-symbols
only.Sets the symbol image on the bar button item with a symbol content transition and specified options. Passing in a non-symbol image will result in undefined behavior.
Source§impl UIBarButtonItem
UIBarButtonItemGroup.
impl UIBarButtonItem
UIBarButtonItemGroup.
Available on crate feature UIBarButtonItemGroup
only.
UIBarButtonItemGroup
only.The group that the UIBarButtonItem is currently associated with, either as a member of the barButtonItems array or as that group’s representativeItem.
impl UIBarButtonItem
UIPopoverPresentationControllerSourceItem.
Methods from Deref<Target = UIBarItem>§
pub unsafe fn isEnabled(&self) -> bool
Sourcepub unsafe fn setEnabled(&self, enabled: bool)
pub unsafe fn setEnabled(&self, enabled: bool)
Setter for isEnabled
.
pub unsafe fn title(&self) -> Option<Retained<NSString>>
pub unsafe fn image(&self) -> Option<Retained<UIImage>>
UIImage
only.Sourcepub unsafe fn setImage(&self, image: Option<&UIImage>)
Available on crate feature UIImage
only.
pub unsafe fn setImage(&self, image: Option<&UIImage>)
UIImage
only.Setter for image
.
pub unsafe fn landscapeImagePhone(&self) -> Option<Retained<UIImage>>
UIImage
only.Sourcepub unsafe fn setLandscapeImagePhone(
&self,
landscape_image_phone: Option<&UIImage>,
)
Available on crate feature UIImage
only.
pub unsafe fn setLandscapeImagePhone( &self, landscape_image_phone: Option<&UIImage>, )
UIImage
only.Setter for landscapeImagePhone
.
pub unsafe fn largeContentSizeImage(&self) -> Option<Retained<UIImage>>
UIImage
only.Sourcepub unsafe fn setLargeContentSizeImage(
&self,
large_content_size_image: Option<&UIImage>,
)
Available on crate feature UIImage
only.
pub unsafe fn setLargeContentSizeImage( &self, large_content_size_image: Option<&UIImage>, )
UIImage
only.Setter for largeContentSizeImage
.
pub unsafe fn imageInsets(&self) -> UIEdgeInsets
UIGeometry
and objc2-core-foundation
only.Sourcepub unsafe fn setImageInsets(&self, image_insets: UIEdgeInsets)
Available on crate features UIGeometry
and objc2-core-foundation
only.
pub unsafe fn setImageInsets(&self, image_insets: UIEdgeInsets)
UIGeometry
and objc2-core-foundation
only.Setter for imageInsets
.
pub unsafe fn landscapeImagePhoneInsets(&self) -> UIEdgeInsets
UIGeometry
and objc2-core-foundation
only.Sourcepub unsafe fn setLandscapeImagePhoneInsets(
&self,
landscape_image_phone_insets: UIEdgeInsets,
)
Available on crate features UIGeometry
and objc2-core-foundation
only.
pub unsafe fn setLandscapeImagePhoneInsets( &self, landscape_image_phone_insets: UIEdgeInsets, )
UIGeometry
and objc2-core-foundation
only.Setter for landscapeImagePhoneInsets
.
pub unsafe fn largeContentSizeImageInsets(&self) -> UIEdgeInsets
UIGeometry
and objc2-core-foundation
only.Sourcepub unsafe fn setLargeContentSizeImageInsets(
&self,
large_content_size_image_insets: UIEdgeInsets,
)
Available on crate features UIGeometry
and objc2-core-foundation
only.
pub unsafe fn setLargeContentSizeImageInsets( &self, large_content_size_image_insets: UIEdgeInsets, )
UIGeometry
and objc2-core-foundation
only.Setter for largeContentSizeImageInsets
.
pub unsafe fn tag(&self) -> NSInteger
pub unsafe fn setTitleTextAttributes_forState( &self, attributes: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>, state: UIControlState, )
UIControl
only.pub unsafe fn titleTextAttributesForState( &self, state: UIControlState, ) -> Option<Retained<NSDictionary<NSAttributedStringKey, AnyObject>>>
UIControl
only.Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
Available on crate feature UIIndirectScribbleInteraction
only.
pub fn class(&self) -> &'static AnyClass
UIIndirectScribbleInteraction
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());
Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load
instead.Available on crate feature UIIndirectScribbleInteraction
only.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load
instead.UIIndirectScribbleInteraction
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.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Available on crate feature UIIndirectScribbleInteraction
only.
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
UIIndirectScribbleInteraction
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 UIBarButtonItem
impl AsRef<AnyObject> for UIBarButtonItem
Source§impl AsRef<NSObject> for UIBarButtonItem
impl AsRef<NSObject> for UIBarButtonItem
Source§impl AsRef<UIBarButtonItem> for UIBarButtonItem
impl AsRef<UIBarButtonItem> for UIBarButtonItem
Source§impl AsRef<UIBarItem> for UIBarButtonItem
impl AsRef<UIBarItem> for UIBarButtonItem
Source§impl Borrow<AnyObject> for UIBarButtonItem
impl Borrow<AnyObject> for UIBarButtonItem
Source§impl Borrow<NSObject> for UIBarButtonItem
impl Borrow<NSObject> for UIBarButtonItem
Source§impl Borrow<UIBarItem> for UIBarButtonItem
impl Borrow<UIBarItem> for UIBarButtonItem
Source§impl ClassType for UIBarButtonItem
impl ClassType for UIBarButtonItem
Source§const NAME: &'static str = "UIBarButtonItem"
const NAME: &'static str = "UIBarButtonItem"
Source§type ThreadKind = dyn MainThreadOnly
type ThreadKind = dyn MainThreadOnly
Source§impl Debug for UIBarButtonItem
impl Debug for UIBarButtonItem
Source§impl Deref for UIBarButtonItem
impl Deref for UIBarButtonItem
Source§impl Hash for UIBarButtonItem
impl Hash for UIBarButtonItem
Source§impl Message for UIBarButtonItem
impl Message for UIBarButtonItem
Source§impl NSCoding for UIBarButtonItem
impl NSCoding for UIBarButtonItem
Source§impl NSObjectProtocol for UIBarButtonItem
impl NSObjectProtocol for UIBarButtonItem
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass
directly, or cast your objects with AnyObject::downcast_ref
Source§fn isMemberOfClass(&self, cls: &AnyClass) -> bool
fn isMemberOfClass(&self, cls: &AnyClass) -> bool
Source§fn respondsToSelector(&self, aSelector: Sel) -> bool
fn respondsToSelector(&self, aSelector: Sel) -> bool
Source§fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
Source§fn debugDescription(&self) -> Retained<NSObject>
fn debugDescription(&self) -> Retained<NSObject>
Source§impl PartialEq for UIBarButtonItem
impl PartialEq for UIBarButtonItem
Source§impl RefEncode for UIBarButtonItem
impl RefEncode for UIBarButtonItem
Source§const ENCODING_REF: Encoding = <UIBarItem as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <UIBarItem as ::objc2::RefEncode>::ENCODING_REF
Source§impl UIAppearance for UIBarButtonItem
impl UIAppearance for UIBarButtonItem
Source§unsafe fn appearance(mtm: MainThreadMarker) -> Retained<Self>
unsafe fn appearance(mtm: MainThreadMarker) -> Retained<Self>
UIAppearance
only.Source§unsafe fn appearanceWhenContainedInInstancesOfClasses(
container_types: &NSArray<AnyClass>,
mtm: MainThreadMarker,
) -> Retained<Self>
unsafe fn appearanceWhenContainedInInstancesOfClasses( container_types: &NSArray<AnyClass>, mtm: MainThreadMarker, ) -> Retained<Self>
UIAppearance
only.Source§unsafe fn appearanceForTraitCollection(
trait: &UITraitCollection,
mtm: MainThreadMarker,
) -> Retained<Self>
unsafe fn appearanceForTraitCollection( trait: &UITraitCollection, mtm: MainThreadMarker, ) -> Retained<Self>
UIAppearance
and UITraitCollection
only.Source§unsafe fn appearanceForTraitCollection_whenContainedInInstancesOfClasses(
trait: &UITraitCollection,
container_types: &NSArray<AnyClass>,
mtm: MainThreadMarker,
) -> Retained<Self>
unsafe fn appearanceForTraitCollection_whenContainedInInstancesOfClasses( trait: &UITraitCollection, container_types: &NSArray<AnyClass>, mtm: MainThreadMarker, ) -> Retained<Self>
UIAppearance
and UITraitCollection
only.Source§impl UIPopoverPresentationControllerSourceItem for UIBarButtonItem
Available on crate feature UIPopoverPresentationControllerSourceItem
only.
impl UIPopoverPresentationControllerSourceItem for UIBarButtonItem
UIPopoverPresentationControllerSourceItem
only.Source§impl UISpringLoadedInteractionSupporting for UIBarButtonItem
impl UISpringLoadedInteractionSupporting for UIBarButtonItem
Source§unsafe fn isSpringLoaded(&self) -> bool
unsafe fn isSpringLoaded(&self) -> bool
UISpringLoadedInteractionSupporting
only.Source§unsafe fn setSpringLoaded(&self, spring_loaded: bool)
unsafe fn setSpringLoaded(&self, spring_loaded: bool)
UISpringLoadedInteractionSupporting
only.isSpringLoaded
.impl DowncastTarget for UIBarButtonItem
impl Eq for UIBarButtonItem
Auto Trait Implementations§
impl !Freeze for UIBarButtonItem
impl !RefUnwindSafe for UIBarButtonItem
impl !Send for UIBarButtonItem
impl !Sync for UIBarButtonItem
impl !Unpin for UIBarButtonItem
impl !UnwindSafe for UIBarButtonItem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<'a, T> MainThreadOnly for T
impl<'a, T> MainThreadOnly for T
Source§fn mtm(&self) -> MainThreadMarker
fn mtm(&self) -> MainThreadMarker
MainThreadMarker
from the main-thread-only object. Read more