UIBarButtonItem

Struct UIBarButtonItem 

Source
pub struct UIBarButtonItem { /* private fields */ }
Available on crate features UIBarButtonItem and UIBarItem only.
Expand description

Implementations§

Source§

impl UIBarButtonItem

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 initWithImage_style_target_action( this: Allocated<Self>, image: Option<&UIImage>, style: UIBarButtonItemStyle, target: Option<&AnyObject>, action: Option<Sel>, ) -> Retained<Self>

Available on crate feature UIImage only.
§Safety
  • target should be of the correct type.
  • action must be a valid selector.
Source

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>

Available on crate feature UIImage only.
§Safety
  • target should be of the correct type.
  • action must be a valid selector.
Source

pub unsafe fn initWithTitle_style_target_action( this: Allocated<Self>, title: Option<&NSString>, style: UIBarButtonItemStyle, target: Option<&AnyObject>, action: Option<Sel>, ) -> Retained<Self>

§Safety
  • target should be of the correct type.
  • action must be a valid selector.
Source

pub unsafe fn initWithBarButtonSystemItem_target_action( this: Allocated<Self>, system_item: UIBarButtonSystemItem, target: Option<&AnyObject>, action: Option<Sel>, ) -> Retained<Self>

§Safety
  • target should be of the correct type.
  • action must be a valid selector.
Source

pub fn initWithCustomView( this: Allocated<Self>, custom_view: &UIView, ) -> Retained<Self>

Available on crate features UIResponder and UIView only.
Source

pub fn initWithBarButtonSystemItem_primaryAction( this: Allocated<Self>, system_item: UIBarButtonSystemItem, primary_action: Option<&UIAction>, ) -> Retained<Self>

Available on crate features UIAction and UIMenuElement only.

Creates a bar button item for the given systemItem. The primaryAction is copied, and its title & image are ignored.

Source

pub fn initWithPrimaryAction( this: Allocated<Self>, primary_action: Option<&UIAction>, ) -> Retained<Self>

Available on crate features UIAction and UIMenuElement only.

Creates a plain-style bar button item from the properties of primaryAction. primaryAction is copied.

Source

pub fn initWithBarButtonSystemItem_menu( this: Allocated<Self>, system_item: UIBarButtonSystemItem, menu: Option<&UIMenu>, ) -> Retained<Self>

Available on crate features UIMenu and UIMenuElement only.

Creates a bar button item for the given systemItem. The constructed item will present the menu immediately when touched.

Source

pub fn initWithTitle_menu( this: Allocated<Self>, title: Option<&NSString>, menu: Option<&UIMenu>, ) -> Retained<Self>

Available on crate features 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.

Source

pub fn initWithImage_menu( this: Allocated<Self>, image: Option<&UIImage>, menu: Option<&UIMenu>, ) -> Retained<Self>

Available on crate features 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.

Source

pub fn initWithPrimaryAction_menu( this: Allocated<Self>, primary_action: Option<&UIAction>, menu: Option<&UIMenu>, ) -> Retained<Self>

Available on crate features UIAction and UIMenu and UIMenuElement only.

Creates a plain-style bar button item from the properties of primaryAction. primaryAction is copied.

Source

pub fn initWithBarButtonSystemItem_primaryAction_menu( this: Allocated<Self>, system_item: UIBarButtonSystemItem, primary_action: Option<&UIAction>, menu: Option<&UIMenu>, ) -> Retained<Self>

Available on crate features 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.

Source

pub unsafe fn initWithTitle_image_target_action_menu( this: Allocated<Self>, title: Option<&NSString>, image: Option<&UIImage>, target: Option<&AnyObject>, action: Option<Sel>, menu: Option<&UIMenu>, ) -> Retained<Self>

Available on crate features UIImage and UIMenu and UIMenuElement only.

Creates a plain-style bar button item with the given title and image.

§Safety
  • target should be of the correct type.
  • action must be a valid selector.
Source

pub fn fixedSpaceItemOfWidth( width: CGFloat, mtm: MainThreadMarker, ) -> Retained<Self>

Available on crate feature objc2-core-foundation only.

Construct a new fixed space item with the given width.

Source

pub fn flexibleSpaceItem(mtm: MainThreadMarker) -> Retained<Self>

Construct a new flexible space item.

Source

pub fn fixedSpaceItem(mtm: MainThreadMarker) -> Retained<Self>

Creates a new fixed space item of zero width.

A fixed space of 0 width separates the shared background used in navigation bars and toolbars to visually group items.

Source

pub fn style(&self) -> UIBarButtonItemStyle

Source

pub fn setStyle(&self, style: UIBarButtonItemStyle)

Setter for style.

Source

pub fn width(&self) -> CGFloat

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

pub fn setWidth(&self, width: CGFloat)

Available on crate feature objc2-core-foundation only.

Setter for width.

Source

pub fn possibleTitles(&self) -> Option<Retained<NSSet<NSString>>>

Source

pub fn setPossibleTitles(&self, possible_titles: Option<&NSSet<NSString>>)

Setter for possibleTitles.

This is copied when set.

Source

pub fn customView(&self) -> Option<Retained<UIView>>

Available on crate features UIResponder and UIView only.
Source

pub fn setCustomView(&self, custom_view: Option<&UIView>)

Available on crate features UIResponder and UIView only.

Setter for customView.

Source

pub unsafe fn action(&self) -> Option<Sel>

§Safety

You must ensure this is still alive.

Source

pub unsafe fn setAction(&self, action: Option<Sel>)

Setter for action.

§Safety
  • action must be a valid selector.
  • This is unretained, you must ensure the object is kept alive while in use.
Source

pub fn target(&self) -> Option<Retained<AnyObject>>

Source

pub unsafe fn setTarget(&self, target: Option<&AnyObject>)

Setter for target.

This is a weak property.

§Safety

target should be of the correct type.

Source

pub fn primaryAction(&self) -> Option<Retained<UIAction>>

Available on crate features UIAction and UIMenuElement only.

Set the primaryAction on this item, updating the title & image of the item if appropriate (primaryAction’s title is non-nil for the title update, primaryAction’s image is non-nil for the image update, and if 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.

Source

pub fn setPrimaryAction(&self, primary_action: Option<&UIAction>)

Available on crate features UIAction and UIMenuElement only.

Setter for primaryAction.

This is copied when set.

Source

pub fn menu(&self) -> Option<Retained<UIMenu>>

Available on crate features 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.

Source

pub fn setMenu(&self, menu: Option<&UIMenu>)

Available on crate features UIMenu and UIMenuElement only.

Setter for menu.

This is copied when set.

Source

pub fn preferredMenuElementOrder( &self, ) -> UIContextMenuConfigurationElementOrder

Available on crate feature UIContextMenuConfiguration only.

Preferred menu element ordering strategy for menus displayed by this button.

Source

pub fn setPreferredMenuElementOrder( &self, preferred_menu_element_order: UIContextMenuConfigurationElementOrder, )

Available on crate feature UIContextMenuConfiguration only.
Source

pub 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.

Source

pub fn setChangesSelectionAsPrimaryAction( &self, changes_selection_as_primary_action: bool, )

Source

pub fn isSelected(&self) -> bool

Source

pub fn setSelected(&self, selected: bool)

Setter for isSelected.

Source

pub fn isHidden(&self) -> bool

If the item should be hidden from display.

Source

pub fn setHidden(&self, hidden: bool)

Setter for isHidden.

Source

pub fn isSymbolAnimationEnabled(&self) -> bool

Whether or not symbol animations are enabled for this bar button item.

Source

pub fn setSymbolAnimationEnabled(&self, symbol_animation_enabled: bool)

Source

pub fn menuRepresentation(&self) -> Option<Retained<UIMenuElement>>

Available on crate feature UIMenuElement only.

A UIMenuElement that should substitute for the UIBarButtonItem when displayed in a menu.

Source

pub fn setMenuRepresentation(&self, menu_representation: Option<&UIMenuElement>)

Available on crate feature UIMenuElement only.

Setter for menuRepresentation.

This is copied when set.

Source

pub fn hidesSharedBackground(&self) -> bool

A boolean value indicating whether the background this item may share with other items in the bar should be hidden.

Set this property to YES to prevent the standard shared background (typically using the Glass effect) from being drawn behind this bar button item.

This item will not be visually grouped with any other items, without the standard shared background. This property is ignored if the item is in a UIBarButtonItemGroup with more than one item. The default value is NO.

Source

pub fn setHidesSharedBackground(&self, hides_shared_background: bool)

Source

pub fn sharesBackground(&self) -> bool

A boolean value indicating whether this bar button item can share a background with other items in a navigation bar or a toolbar.

When NO, This item will not be visually grouped with any other items.

This property is ignored if the item is in a UIBarButtonItemGroup with more than one item. The default value is YES.

Source

pub fn setSharesBackground(&self, shares_background: bool)

Setter for sharesBackground.

Source

pub fn identifier(&self) -> Option<Retained<NSString>>

An identifier used to match bar button items across transitions in a navigation bar or toolbar.

When the set of bar button items in a navigation bar or toolbar changes (for example, when pushing or popping view controllers), UIKit automatically animates the transition between the different sets of items. By default, UIKit uses heuristics based on item position and content to determine which items should be matched for these transitions.

Set this property with the same value on two different bar button items in different navigation item configurations to indicate that they should be treated as the same item during transitions. This allows for more natural animations when the visuals or function of an item changes across contexts.

The default value is nil, which means UIKit will use its default heuristics for transitions.

Source

pub fn setIdentifier(&self, identifier: Option<&NSString>)

Setter for identifier.

This is copied when set.

Source

pub fn creatingFixedGroup(&self) -> Retained<UIBarButtonItemGroup>

Available on crate feature 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.

Source

pub fn creatingMovableGroupWithCustomizationIdentifier( &self, customization_identifier: &NSString, ) -> Retained<UIBarButtonItemGroup>

Available on crate feature 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.

Source

pub fn creatingOptionalGroupWithCustomizationIdentifier_inDefaultCustomization( &self, customization_identifier: &NSString, in_default_customization: bool, ) -> Retained<UIBarButtonItemGroup>

Available on crate feature 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.

Source

pub fn setBackgroundImage_forState_barMetrics( &self, background_image: Option<&UIImage>, state: UIControlState, bar_metrics: UIBarMetrics, )

Available on crate features UIBarCommon and UIControl and UIImage only.
Source

pub fn backgroundImageForState_barMetrics( &self, state: UIControlState, bar_metrics: UIBarMetrics, ) -> Option<Retained<UIImage>>

Available on crate features UIBarCommon and UIControl and UIImage only.
Source

pub fn setBackgroundImage_forState_style_barMetrics( &self, background_image: Option<&UIImage>, state: UIControlState, style: UIBarButtonItemStyle, bar_metrics: UIBarMetrics, )

Available on crate features UIBarCommon and UIControl and UIImage only.
Source

pub fn backgroundImageForState_style_barMetrics( &self, state: UIControlState, style: UIBarButtonItemStyle, bar_metrics: UIBarMetrics, ) -> Option<Retained<UIImage>>

Available on crate features UIBarCommon and UIControl and UIImage only.
Source

pub fn tintColor(&self) -> Option<Retained<UIColor>>

Available on crate feature UIColor only.
Source

pub fn setTintColor(&self, tint_color: Option<&UIColor>)

Available on crate feature UIColor only.

Setter for tintColor.

Source

pub fn setBackgroundVerticalPositionAdjustment_forBarMetrics( &self, adjustment: CGFloat, bar_metrics: UIBarMetrics, )

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

pub fn backgroundVerticalPositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> CGFloat

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

pub fn setTitlePositionAdjustment_forBarMetrics( &self, adjustment: UIOffset, bar_metrics: UIBarMetrics, )

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

pub fn titlePositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> UIOffset

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

pub fn setBackButtonBackgroundImage_forState_barMetrics( &self, background_image: Option<&UIImage>, state: UIControlState, bar_metrics: UIBarMetrics, )

Available on crate features UIBarCommon and UIControl and UIImage only.
Source

pub fn backButtonBackgroundImageForState_barMetrics( &self, state: UIControlState, bar_metrics: UIBarMetrics, ) -> Option<Retained<UIImage>>

Available on crate features UIBarCommon and UIControl and UIImage only.
Source

pub fn setBackButtonTitlePositionAdjustment_forBarMetrics( &self, adjustment: UIOffset, bar_metrics: UIBarMetrics, )

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

pub fn backButtonTitlePositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> UIOffset

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

pub fn setBackButtonBackgroundVerticalPositionAdjustment_forBarMetrics( &self, adjustment: CGFloat, bar_metrics: UIBarMetrics, )

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

pub fn backButtonBackgroundVerticalPositionAdjustmentForBarMetrics( &self, bar_metrics: UIBarMetrics, ) -> CGFloat

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

impl UIBarButtonItem

Methods declared on superclass NSObject.

Source

pub fn new(mtm: MainThreadMarker) -> Retained<Self>

Source§

impl UIBarButtonItem

This impl block contains no items.

SpringLoading.

Source§

impl UIBarButtonItem

Source

pub fn addSymbolEffect(&self, symbol_effect: &NSSymbolEffect)

Available on crate feature 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.

Source

pub fn addSymbolEffect_options( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, )

Available on crate feature 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.

Source

pub fn addSymbolEffect_options_animated( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, animated: bool, )

Available on crate feature 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.

Source

pub fn removeSymbolEffectOfType(&self, symbol_effect: &NSSymbolEffect)

Available on crate feature objc2-symbols only.

Removes from the bar button item the symbol effect matching the type of effect passed in, with default options and animation.

Source

pub fn removeSymbolEffectOfType_options( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, )

Available on crate feature 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.

Source

pub fn removeSymbolEffectOfType_options_animated( &self, symbol_effect: &NSSymbolEffect, options: &NSSymbolEffectOptions, animated: bool, )

Available on crate feature objc2-symbols only.

Removes from the bar button item the symbol effect matching the type of effect passed in, with specified options and animation.

Source

pub fn removeAllSymbolEffects(&self)

Removes all symbol effects from the bar button item with default options and animation.

Source

pub fn removeAllSymbolEffectsWithOptions(&self, options: &NSSymbolEffectOptions)

Available on crate feature objc2-symbols only.

Removes all symbol effects from the bar button item with specified options and default animation.

Source

pub fn removeAllSymbolEffectsWithOptions_animated( &self, options: &NSSymbolEffectOptions, animated: bool, )

Available on crate feature objc2-symbols only.

Removes all symbol effects from the bar button item with specified options and animation.

Source

pub fn setSymbolImage_withContentTransition( &self, symbol_image: &UIImage, transition: &NSSymbolContentTransition, )

Available on crate features 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.

Source

pub fn setSymbolImage_withContentTransition_options( &self, symbol_image: &UIImage, transition: &NSSymbolContentTransition, options: &NSSymbolEffectOptions, )

Available on crate features 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

Badging.

Source

pub fn badge(&self) -> Option<Retained<UIBarButtonItemBadge>>

Available on crate feature UIBarButtonItemBadge only.

Sets a badge on the bar button item. Currently only supported in navigation bars.

Source

pub fn setBadge(&self, badge: Option<&UIBarButtonItemBadge>)

Available on crate feature UIBarButtonItemBadge only.

Setter for badge.

Source§

impl UIBarButtonItem

UIBarButtonItemGroup.

Source

pub fn buttonGroup(&self) -> Option<Retained<UIBarButtonItemGroup>>

Available on crate feature 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.

Source§

impl UIBarButtonItem

This impl block contains no items.

UIPopoverPresentationControllerSourceItem.

Methods from Deref<Target = UIBarItem>§

Source

pub fn isEnabled(&self) -> bool

Source

pub fn setEnabled(&self, enabled: bool)

Setter for isEnabled.

Source

pub fn title(&self) -> Option<Retained<NSString>>

Source

pub fn setTitle(&self, title: Option<&NSString>)

Setter for title.

This is copied when set.

Source

pub fn image(&self) -> Option<Retained<UIImage>>

Available on crate feature UIImage only.
Source

pub fn setImage(&self, image: Option<&UIImage>)

Available on crate feature UIImage only.

Setter for image.

Source

pub fn landscapeImagePhone(&self) -> Option<Retained<UIImage>>

Available on crate feature UIImage only.
Source

pub fn setLandscapeImagePhone(&self, landscape_image_phone: Option<&UIImage>)

Available on crate feature UIImage only.

Setter for landscapeImagePhone.

Source

pub fn largeContentSizeImage(&self) -> Option<Retained<UIImage>>

Available on crate feature UIImage only.
Source

pub fn setLargeContentSizeImage( &self, large_content_size_image: Option<&UIImage>, )

Available on crate feature UIImage only.
Source

pub fn imageInsets(&self) -> UIEdgeInsets

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

pub fn setImageInsets(&self, image_insets: UIEdgeInsets)

Available on crate features UIGeometry and objc2-core-foundation only.

Setter for imageInsets.

Source

pub fn landscapeImagePhoneInsets(&self) -> UIEdgeInsets

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

pub fn setLandscapeImagePhoneInsets( &self, landscape_image_phone_insets: UIEdgeInsets, )

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

pub fn largeContentSizeImageInsets(&self) -> UIEdgeInsets

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

pub fn setLargeContentSizeImageInsets( &self, large_content_size_image_insets: UIEdgeInsets, )

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

pub fn tag(&self) -> NSInteger

Source

pub fn setTag(&self, tag: NSInteger)

Setter for tag.

Source

pub unsafe fn setTitleTextAttributes_forState( &self, attributes: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>, state: UIControlState, )

Available on crate feature UIControl only.
§Safety

attributes generic should be of the correct type.

Source

pub fn titleTextAttributesForState( &self, state: UIControlState, ) -> Option<Retained<NSDictionary<NSAttributedStringKey, AnyObject>>>

Available on crate feature UIControl only.

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 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());
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 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.

Source

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

Available on crate feature 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

Source§

fn as_ref(&self) -> &AnyObject

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

impl AsRef<NSObject> for UIBarButtonItem

Source§

fn as_ref(&self) -> &NSObject

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

impl AsRef<UIBarButtonItem> for UIBarButtonItem

Source§

fn as_ref(&self) -> &Self

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

impl AsRef<UIBarItem> for UIBarButtonItem

Source§

fn as_ref(&self) -> &UIBarItem

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

impl Borrow<AnyObject> for UIBarButtonItem

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for UIBarButtonItem

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<UIBarItem> for UIBarButtonItem

Source§

fn borrow(&self) -> &UIBarItem

Immutably borrows from an owned value. Read more
Source§

impl ClassType for UIBarButtonItem

Source§

const NAME: &'static str = "UIBarButtonItem"

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

type Super = UIBarItem

The superclass of this class. Read more
Source§

type ThreadKind = dyn MainThreadOnly

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 Debug for UIBarButtonItem

Source§

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

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

impl Deref for UIBarButtonItem

Source§

type Target = UIBarItem

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl Hash for UIBarButtonItem

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 UIBarButtonItem

Source§

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

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

impl NSCoding for UIBarButtonItem

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 NSObjectProtocol for UIBarButtonItem

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 PartialEq for UIBarButtonItem

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 UIBarButtonItem

Source§

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

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

impl UIAppearance for UIBarButtonItem

Source§

fn appearance(mtm: MainThreadMarker) -> Retained<Self>
where Self: Sized + ClassType,

Available on crate feature UIAppearance only.
Source§

unsafe fn appearanceWhenContainedInInstancesOfClasses( container_types: &NSArray<AnyClass>, mtm: MainThreadMarker, ) -> Retained<Self>
where Self: Sized + ClassType,

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

fn appearanceForTraitCollection( trait: &UITraitCollection, mtm: MainThreadMarker, ) -> Retained<Self>
where Self: Sized + ClassType,

Available on crate features UIAppearance and UITraitCollection only.
Source§

unsafe fn appearanceForTraitCollection_whenContainedInInstancesOfClasses( trait: &UITraitCollection, container_types: &NSArray<AnyClass>, mtm: MainThreadMarker, ) -> Retained<Self>
where Self: Sized + ClassType,

Available on crate features UIAppearance and UITraitCollection only.
Safety Read more
Source§

impl UIPopoverPresentationControllerSourceItem for UIBarButtonItem

Available on crate feature UIPopoverPresentationControllerSourceItem only.
Source§

fn frameInView(&self, reference_view: &UIView) -> CGRect
where Self: Sized + Message,

Available on crate features UIResponder and UIView and objc2-core-foundation only.
Source§

impl UISpringLoadedInteractionSupporting for UIBarButtonItem

Source§

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

Available on crate feature UISpringLoadedInteractionSupporting only.
Source§

fn setSpringLoaded(&self, spring_loaded: bool)
where Self: Sized + Message,

Available on crate feature UISpringLoadedInteractionSupporting only.
Setter for isSpringLoaded.
Source§

impl DowncastTarget for UIBarButtonItem

Source§

impl Eq for UIBarButtonItem

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<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<'a, T> MainThreadOnly for T
where T: ClassType<ThreadKind = dyn MainThreadOnly + 'a> + ?Sized,

Source§

fn mtm(&self) -> MainThreadMarker

Get a MainThreadMarker from the main-thread-only object. Read more
Source§

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

Allocate a new instance of the class on the main thread. Read more
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,