#[repr(C)]pub struct NSToolbar { /* private fields */ }
NSToolbar
only.Expand description
Implementations§
Source§impl NSToolbar
impl NSToolbar
Sourcepub unsafe fn initWithIdentifier(
this: Allocated<Self>,
identifier: &NSToolbarIdentifier,
) -> Retained<Self>
pub unsafe fn initWithIdentifier( this: Allocated<Self>, identifier: &NSToolbarIdentifier, ) -> Retained<Self>
The identifier is used to form the toolbar’s autosave name. Toolbars with the same identifier are implicitly synchronized so that they maintain the same state.
Sourcepub unsafe fn init(this: Allocated<Self>) -> Retained<Self>
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>
Calls through to -initWithIdentifier: with an empty string identifier.
Customizable toolbars should use -initWithIdentifier:
with a unique identifier instead.
Sourcepub unsafe fn insertItemWithItemIdentifier_atIndex(
&self,
item_identifier: &NSToolbarItemIdentifier,
index: NSInteger,
)
pub unsafe fn insertItemWithItemIdentifier_atIndex( &self, item_identifier: &NSToolbarItemIdentifier, index: NSInteger, )
Inserts an item with the specified identifier in the receiving toolbar at the specified index.
Any change made will be propagated immediately to all other toolbars with the same identifier.
Sourcepub unsafe fn removeItemAtIndex(&self, index: NSInteger)
pub unsafe fn removeItemAtIndex(&self, index: NSInteger)
Removes the item at the specified index in the receiving toolbar.
Any change made will be propagated immediately to all other toolbars with the same identifier.
Sourcepub unsafe fn removeItemWithItemIdentifier(
&self,
item_identifier: &NSToolbarItemIdentifier,
)
pub unsafe fn removeItemWithItemIdentifier( &self, item_identifier: &NSToolbarItemIdentifier, )
Removes the item with matching itemIdentifier
in the receiving toolbar. If multiple items share the same identifier (as is the case with space items) all matching items will be removed. To remove only a single space item, use -removeItemAtIndex:
instead.
Any change made will be propagated immediately to all other toolbars with the same identifier.
Sourcepub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn NSToolbarDelegate>>>
pub unsafe fn delegate( &self, ) -> Option<Retained<ProtocolObject<dyn NSToolbarDelegate>>>
Customizable toolbars must have a delegate, and must implement the required NSToolbarDelegate
methods.
Sourcepub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn NSToolbarDelegate>>,
)
pub unsafe fn setDelegate( &self, delegate: Option<&ProtocolObject<dyn NSToolbarDelegate>>, )
This is a weak property.
Setter for delegate
.
Sourcepub unsafe fn isVisible(&self) -> bool
pub unsafe fn isVisible(&self) -> bool
Toggles the visibility of the toolbar.
This property may be modified by the user in toolbars with allowsUserCustomization
enabled.
This property is key value observable on macOS 14.0 and higher.
Sourcepub unsafe fn setVisible(&self, visible: bool)
pub unsafe fn setVisible(&self, visible: bool)
Setter for isVisible
.
Sourcepub unsafe fn runCustomizationPalette(&self, sender: Option<&AnyObject>)
pub unsafe fn runCustomizationPalette(&self, sender: Option<&AnyObject>)
Customizable toolbars (those with delegates) can show a palette which allows users to populate the toolbar with individual items or to reset the toolbar to some default set of items.
The items and item sets in the palette are specified by the delegate (-toolbarAllowedItemIdentifiers:
and -toolbarDefaultItemIdentifiers:
).
When the user is done configuring, they will dismiss the palette.
Sourcepub unsafe fn customizationPaletteIsRunning(&self) -> bool
pub unsafe fn customizationPaletteIsRunning(&self) -> bool
Whether or not the customization palette is currently running. On macOS 15.0 and above this property is key value observable.
Sourcepub unsafe fn displayMode(&self) -> NSToolbarDisplayMode
pub unsafe fn displayMode(&self) -> NSToolbarDisplayMode
The current display mode of items in the toolbar.
In toolbars with allowsDisplayModeCustomization
enabled this is a user modifiable property.
This property is key value observable.
Sourcepub unsafe fn setDisplayMode(&self, display_mode: NSToolbarDisplayMode)
pub unsafe fn setDisplayMode(&self, display_mode: NSToolbarDisplayMode)
Setter for displayMode
.
Sourcepub unsafe fn selectedItemIdentifier(
&self,
) -> Option<Retained<NSToolbarItemIdentifier>>
pub unsafe fn selectedItemIdentifier( &self, ) -> Option<Retained<NSToolbarItemIdentifier>>
Sets the toolbar’s selected item by identifier.
Use this to force an item identifier to be selected.
Toolbar manages selection of image items automatically.
This method can be used to select identifiers of custom view items, or to force a selection change.
See -toolbarSelectableItemIdentifiers:
delegate method for more details.
This property is key value observable.
Sourcepub unsafe fn setSelectedItemIdentifier(
&self,
selected_item_identifier: Option<&NSToolbarItemIdentifier>,
)
pub unsafe fn setSelectedItemIdentifier( &self, selected_item_identifier: Option<&NSToolbarItemIdentifier>, )
Setter for selectedItemIdentifier
.
Sourcepub unsafe fn allowsUserCustomization(&self) -> bool
pub unsafe fn allowsUserCustomization(&self) -> bool
This flag controls whether or not users can configure the toolbar by dragging items around, and whether or not the customization palette can be used. The default value is NO, but can be changed at any time. For instance, a developer may not want users to be able to edit the toolbar while some event is being processed.
Sourcepub unsafe fn setAllowsUserCustomization(&self, allows_user_customization: bool)
pub unsafe fn setAllowsUserCustomization(&self, allows_user_customization: bool)
Setter for allowsUserCustomization
.
Sourcepub unsafe fn allowsDisplayModeCustomization(&self) -> bool
pub unsafe fn allowsDisplayModeCustomization(&self) -> bool
Whether or not the user is allowed to change display modes at run time.
This functionality is independent of customizing the order of the items themselves.
Only disable when the functionality or legibility of your toolbar could not be improved by another display mode.
The user’s selection will be persisted using the toolbar’s identifier
when autosavesConfiguration
is enabled.
The default is YES for apps linked on macOS 15.0 and above.
Sourcepub unsafe fn setAllowsDisplayModeCustomization(
&self,
allows_display_mode_customization: bool,
)
pub unsafe fn setAllowsDisplayModeCustomization( &self, allows_display_mode_customization: bool, )
Setter for allowsDisplayModeCustomization
.
Sourcepub unsafe fn identifier(&self) -> Retained<NSToolbarIdentifier>
pub unsafe fn identifier(&self) -> Retained<NSToolbarIdentifier>
All toolbars with the same name will share the same display attributes, and item order. If a toolbar autosaves its configuration, the item identifier will be used as the autosave name.
Sourcepub unsafe fn items(&self) -> Retained<NSArray<NSToolbarItem>>
Available on crate feature NSToolbarItem
only.
pub unsafe fn items(&self) -> Retained<NSArray<NSToolbarItem>>
NSToolbarItem
only.Allows you to access all current items in the toolbar.
Sourcepub unsafe fn visibleItems(&self) -> Option<Retained<NSArray<NSToolbarItem>>>
Available on crate feature NSToolbarItem
only.
pub unsafe fn visibleItems(&self) -> Option<Retained<NSArray<NSToolbarItem>>>
NSToolbarItem
only.Allows you to access the current visible items (non clipped).
Sourcepub unsafe fn itemIdentifiers(
&self,
) -> Retained<NSArray<NSToolbarItemIdentifier>>
pub unsafe fn itemIdentifiers( &self, ) -> Retained<NSArray<NSToolbarItemIdentifier>>
An array of itemIdentifiers that represent the current items in the toolbar.
Setting this property will set the current items in the toolbar by diffing against items that already exist.
Use this with great caution if allowsUserCustomization
is enabled as it will override any customizations the user has made.
This property is key value observable.
Sourcepub unsafe fn setItemIdentifiers(
&self,
item_identifiers: &NSArray<NSToolbarItemIdentifier>,
)
pub unsafe fn setItemIdentifiers( &self, item_identifiers: &NSArray<NSToolbarItemIdentifier>, )
Setter for itemIdentifiers
.
Sourcepub unsafe fn centeredItemIdentifiers(
&self,
) -> Retained<NSSet<NSToolbarItemIdentifier>>
pub unsafe fn centeredItemIdentifiers( &self, ) -> Retained<NSSet<NSToolbarItemIdentifier>>
Items with centered identifiers will be centered together in the Toolbar relative to the window assuming space allows. The order of items is initially defined by the default set of identifiers, but may be customized by the user. Centered items may not be moved outside of the center set of items by the user. This property is archived.
Sourcepub unsafe fn setCenteredItemIdentifiers(
&self,
centered_item_identifiers: &NSSet<NSToolbarItemIdentifier>,
)
pub unsafe fn setCenteredItemIdentifiers( &self, centered_item_identifiers: &NSSet<NSToolbarItemIdentifier>, )
Setter for centeredItemIdentifiers
.
Sourcepub unsafe fn autosavesConfiguration(&self) -> bool
pub unsafe fn autosavesConfiguration(&self) -> bool
If autosavesConfiguration
is YES, the toolbar will automatically write changes the user makes to user defaults.
Customizable toolbars will want to set this flag to YES.
Setting this to NO means changes in configuration are not written automatically, however you can use the configurationDictionary
method to do it yourself.
Default is NO.
Sourcepub unsafe fn setAutosavesConfiguration(&self, autosaves_configuration: bool)
pub unsafe fn setAutosavesConfiguration(&self, autosaves_configuration: bool)
Setter for autosavesConfiguration
.
Sourcepub unsafe fn validateVisibleItems(&self)
pub unsafe fn validateVisibleItems(&self)
Typically you should not invoke this method.
This method is called on window updates with the purpose of validating each of the visible items.
The toolbar will iterate through the list of visible items, sending each a -validate
message.
If this method is invoked directly, all visible items including those with autovalidates
disabled will get a -validate
message.
Sourcepub unsafe fn allowsExtensionItems(&self) -> bool
pub unsafe fn allowsExtensionItems(&self) -> bool
When YES, the receiver can dynamically create toolbar items for Action extensions in the toolbar configuration panel. To be included, an extension needs to declare NSExtensionServiceAllowsToolbarItem=YES in its Info.plist. The default value is NO.
Sourcepub unsafe fn setAllowsExtensionItems(&self, allows_extension_items: bool)
pub unsafe fn setAllowsExtensionItems(&self, allows_extension_items: bool)
Setter for allowsExtensionItems
.
Source§impl NSToolbar
Methods declared on superclass NSObject
.
impl NSToolbar
Methods declared on superclass NSObject
.
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>
Source§impl NSToolbar
NSDeprecated.
impl NSToolbar
NSDeprecated.
pub unsafe fn sizeMode(&self) -> NSToolbarSizeMode
Sourcepub unsafe fn setSizeMode(&self, size_mode: NSToolbarSizeMode)
👎Deprecated: NSToolbarSizeMode is no longer recommended and will be ignored in the future
pub unsafe fn setSizeMode(&self, size_mode: NSToolbarSizeMode)
Setter for sizeMode
.
pub unsafe fn centeredItemIdentifier( &self, ) -> Option<Retained<NSToolbarItemIdentifier>>
Sourcepub unsafe fn setCenteredItemIdentifier(
&self,
centered_item_identifier: Option<&NSToolbarItemIdentifier>,
)
👎Deprecated: Use the centeredItemIdentifiers property instead
pub unsafe fn setCenteredItemIdentifier( &self, centered_item_identifier: Option<&NSToolbarItemIdentifier>, )
Setter for centeredItemIdentifier
.
pub unsafe fn fullScreenAccessoryView(&self) -> Option<Retained<NSView>>
NSResponder
and NSView
only.Sourcepub unsafe fn setFullScreenAccessoryView(
&self,
full_screen_accessory_view: Option<&NSView>,
)
👎Deprecated: Use NSTitlebarAccessoryViewController with NSWindow insteadAvailable on crate features NSResponder
and NSView
only.
pub unsafe fn setFullScreenAccessoryView( &self, full_screen_accessory_view: Option<&NSView>, )
NSResponder
and NSView
only.Setter for fullScreenAccessoryView
.
pub unsafe fn fullScreenAccessoryViewMinHeight(&self) -> CGFloat
objc2-core-foundation
only.Sourcepub unsafe fn setFullScreenAccessoryViewMinHeight(
&self,
full_screen_accessory_view_min_height: CGFloat,
)
👎Deprecated: Use NSTitlebarAccessoryViewController and its fullScreenMinHeight property with NSWindow instead.Available on crate feature objc2-core-foundation
only.
pub unsafe fn setFullScreenAccessoryViewMinHeight( &self, full_screen_accessory_view_min_height: CGFloat, )
objc2-core-foundation
only.Setter for fullScreenAccessoryViewMinHeight
.
pub unsafe fn fullScreenAccessoryViewMaxHeight(&self) -> CGFloat
objc2-core-foundation
only.Sourcepub unsafe fn setFullScreenAccessoryViewMaxHeight(
&self,
full_screen_accessory_view_max_height: CGFloat,
)
👎Deprecated: Use NSTitlebarAccessoryViewController with NSWindow instead. The max height of a titlebar accessory is implied by its view’s height.Available on crate feature objc2-core-foundation
only.
pub unsafe fn setFullScreenAccessoryViewMaxHeight( &self, full_screen_accessory_view_max_height: CGFloat, )
objc2-core-foundation
only.Setter for fullScreenAccessoryViewMaxHeight
.
pub unsafe fn showsBaselineSeparator(&self) -> bool
Sourcepub unsafe fn setShowsBaselineSeparator(&self, shows_baseline_separator: bool)
👎Deprecated: No longer supported
pub unsafe fn setShowsBaselineSeparator(&self, shows_baseline_separator: bool)
Setter for showsBaselineSeparator
.
pub unsafe fn configurationDictionary( &self, ) -> Retained<NSDictionary<NSString, AnyObject>>
pub unsafe fn setConfigurationFromDictionary( &self, config_dict: &NSDictionary<NSString, AnyObject>, )
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 NSAccessibilityConstants
only.
pub fn class(&self) -> &'static AnyClass
NSAccessibilityConstants
only.Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init
/new
methods).
§Example
Check that an instance of NSObject
has the precise class NSObject
.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
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 NSAccessibilityConstants
only.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load
instead.NSAccessibilityConstants
only.Use Ivar::load
instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T
.
See Ivar::load_ptr
for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Available on crate feature NSAccessibilityConstants
only.
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
NSAccessibilityConstants
only.Attempt to downcast the object to a class of type T
.
This is the reference-variant. Use Retained::downcast
if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString
.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString
to a NSMutableString
,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass:
for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject
.
§Panics
This works internally by calling isKindOfClass:
. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject
and
NSProxy
implement this method.
§Examples
Cast an NSString
back and forth from NSObject
.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();
Try (and fail) to cast an NSObject
to an NSString
.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());
Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();
This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}
Trait Implementations§
Source§impl ClassType for NSToolbar
impl ClassType for NSToolbar
Source§const NAME: &'static str = "NSToolbar"
const NAME: &'static str = "NSToolbar"
Source§type ThreadKind = dyn MainThreadOnly
type ThreadKind = dyn MainThreadOnly
Source§impl NSObjectProtocol for NSToolbar
impl NSObjectProtocol for NSToolbar
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 RefEncode for NSToolbar
impl RefEncode for NSToolbar
Source§const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF
impl DowncastTarget for NSToolbar
impl Eq for NSToolbar
Auto Trait Implementations§
impl !Freeze for NSToolbar
impl !RefUnwindSafe for NSToolbar
impl !Send for NSToolbar
impl !Sync for NSToolbar
impl !Unpin for NSToolbar
impl !UnwindSafe for NSToolbar
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