#[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.
§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_refSource§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
Available on crate feature UIAppearance only.
impl UIAppearance for UIBarButtonItem
UIAppearance only.unsafe fn appearance(mtm: MainThreadMarker) -> Retained<Self>
unsafe fn appearanceWhenContainedInInstancesOfClasses( container_types: &NSArray<AnyClass>, mtm: MainThreadMarker, ) -> Retained<Self>
Source§unsafe fn appearanceForTraitCollection(
trait: &UITraitCollection,
mtm: MainThreadMarker,
) -> Retained<Self>
unsafe fn appearanceForTraitCollection( trait: &UITraitCollection, mtm: MainThreadMarker, ) -> Retained<Self>
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>
UITraitCollection only.Source§impl UIPopoverPresentationControllerSourceItem for UIBarButtonItem
Available on crate feature UIPopoverPresentationControllerSourceItem only.
impl UIPopoverPresentationControllerSourceItem for UIBarButtonItem
UIPopoverPresentationControllerSourceItem only.Source§impl UISpringLoadedInteractionSupporting for UIBarButtonItem
Available on crate feature UISpringLoadedInteractionSupporting only.
impl UISpringLoadedInteractionSupporting for UIBarButtonItem
UISpringLoadedInteractionSupporting only.unsafe fn isSpringLoaded(&self) -> bool
Source§unsafe fn setSpringLoaded(&self, spring_loaded: bool)
unsafe fn setSpringLoaded(&self, spring_loaded: bool)
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