NSTabViewController

Struct NSTabViewController 

Source
pub struct NSTabViewController { /* private fields */ }
Available on crate features NSResponder and NSTabViewController and NSViewController only.
Expand description

NSTabViewController is a container view controller that displays a single child view controller at a time from its childViewControllers.It provides standard tab-style UI for user selection of tabs, or allows custom UI to be easily created by providing targets for bindings. ChildViewControllers’ views are lazily loaded; they are only loaded once their tab is selected and visible. The NSTabViewController is set as the delegate of its managed NSTabView. Any overrides of NSTabViewDelegate methods must call super. Properties of the TabView such as the tabStyle can be directly manipulated, but calling methods that add and remove tabViewItems or changing the delegate is not allowed. NSViewController’s methods -addChildViewController:,``-insertViewController:atIndex:,and -removeChildViewControllerAtIndex:can all be used as convience methods to add children; default TabViewItems will be appropriately created or destroyed. The default NSTabViewItem created with with +[NSTabViewItem tabViewItemForViewController:].

See also Apple’s documentation

Implementations§

Source§

impl NSTabViewController

Source

pub fn tabStyle(&self) -> NSTabViewControllerTabStyle

The style that this NSTabViewController displays its UI as. Defaults to NSTabViewControllerTabStyleSegmentedControlOnTop.

Source

pub fn setTabStyle(&self, tab_style: NSTabViewControllerTabStyle)

Setter for tabStyle.

Source

pub fn tabView(&self) -> Retained<NSTabView>

Available on crate features NSTabView and NSView only.

Access to the tab view that the controller is controlling. To provide a custom NSTabView, assign the value anytime before self.viewLoadedis YES.Querying the value will create it on-demand, if needed. Check self.viewLoadedbefore querying the value to avoid prematurely creating the view. Note that the -tabViewmay not be equal to the viewController.view.Properties such as the tabStyle can be directly manipulated, but calling methods that add and remove tabViewItems or changing the delegate is not allowed. The NSTabViewController will be made the delegate of the NSTabView. Internally, the NSTabView is always used to switch between displayed childViewControllers, regardless of the style displayed.

Source

pub fn setTabView(&self, tab_view: &NSTabView)

Available on crate features NSTabView and NSView only.

Setter for tabView.

Source

pub fn transitionOptions(&self) -> NSViewControllerTransitionOptions

This defines how NSTabViewController transitions from one view to another. Transitions go through [self transitionFromViewController:toViewController:options:completionHandler:]. The default value is NSViewControllerTransitionCrossfade|NSViewControllerTransitionAllowUserInteraction.

Source

pub fn setTransitionOptions( &self, transition_options: NSViewControllerTransitionOptions, )

Setter for transitionOptions.

Source

pub fn canPropagateSelectedChildViewControllerTitle(&self) -> bool

If YES and the receiving NSTabViewController has a nil title, -titlewill return its selected child ViewController’s title. If NO, it will continue to return nil. The default value is YES.

Source

pub fn setCanPropagateSelectedChildViewControllerTitle( &self, can_propagate_selected_child_view_controller_title: bool, )

Source

pub fn tabViewItems(&self) -> Retained<NSArray<NSTabViewItem>>

Available on crate feature NSTabViewItem only.

The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.

Source

pub fn setTabViewItems(&self, tab_view_items: &NSArray<NSTabViewItem>)

Available on crate feature NSTabViewItem only.

Setter for tabViewItems.

This is copied when set.

Source

pub fn selectedTabViewItemIndex(&self) -> NSInteger

Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl’s selection can be bound to this value with:

 [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
Source

pub fn setSelectedTabViewItemIndex( &self, selected_tab_view_item_index: NSInteger, )

Source

pub fn addTabViewItem(&self, tab_view_item: &NSTabViewItem)

Available on crate feature NSTabViewItem only.

Adds a TabViewItem to the end of the TabViewController. The tabViewItem’s viewController’s view will only be loaded once its tab is selected.

Parameter tabViewItem: The TabViewItem to add. It must have a viewControllerset by the time it is added or an exception will be thrown. An exception will also be thrown if tabViewItem is nil.

Source

pub fn insertTabViewItem_atIndex( &self, tab_view_item: &NSTabViewItem, index: NSInteger, )

Available on crate feature NSTabViewItem only.

Adds a TabViewItem to a given index in the TabViewController. The tabViewItem’s viewController’s view will only be loaded once its tab is selected. -selectedTabViewItemIndexwill be adjusted if the insertion index is before it. Subclasses must call through -insertTabViewItem:atIndex:to add a TabViewItem.

Parameter tabViewItem: The TabViewItem to add. It must have a viewControllerset by the time it is added or an exception will be thrown. An exception will also be thrown if tabViewItem is nil.

Parameter index: The index to add the TabViewItem at. Will throw an exception if index< 0 or index> tabViewItems.count

Source

pub fn removeTabViewItem(&self, tab_view_item: &NSTabViewItem)

Available on crate feature NSTabViewItem only.

Removes a TabViewItem from the receiver. If the removed tabViewItem currently selected, the next (or previous, if there is no next) tabViewItem will become selected. If this is the only tabViewItem in the TabViewController, the selectedTabViewItemIndex will become -1.Subclasses must call through -removeTabViewItem:to remove a TabViewItem.

Parameter tabViewItem: The TabViewItem to remove. An exception will be thrown if tabViewItemis not in the NSTabViewController or if it is nil.

Source

pub fn tabViewItemForViewController( &self, view_controller: &NSViewController, ) -> Option<Retained<NSTabViewItem>>

Available on crate feature NSTabViewItem only.

Convenience method for getting the associated tab view item for a particular childViewController.

Parameter viewController: The ViewController to look up.

Returns: The corresponding TabViewItem. Returns nil if viewControlleris not a child of the TabViewController.

Source

pub fn viewDidLoad(&self)

Source

pub fn tabView_willSelectTabViewItem( &self, tab_view: &NSTabView, tab_view_item: Option<&NSTabViewItem>, )

Available on crate features NSTabView and NSTabViewItem and NSView only.
Source

pub fn tabView_didSelectTabViewItem( &self, tab_view: &NSTabView, tab_view_item: Option<&NSTabViewItem>, )

Available on crate features NSTabView and NSTabViewItem and NSView only.
Source

pub fn tabView_shouldSelectTabViewItem( &self, tab_view: &NSTabView, tab_view_item: Option<&NSTabViewItem>, ) -> bool

Available on crate features NSTabView and NSTabViewItem and NSView only.
Source

pub fn toolbar_itemForItemIdentifier_willBeInsertedIntoToolbar( &self, toolbar: &NSToolbar, item_identifier: &NSToolbarItemIdentifier, flag: bool, ) -> Option<Retained<NSToolbarItem>>

Available on crate features NSToolbar and NSToolbarItem only.
Source

pub fn toolbarDefaultItemIdentifiers( &self, toolbar: &NSToolbar, ) -> Retained<NSArray<NSToolbarItemIdentifier>>

Available on crate feature NSToolbar only.
Source

pub fn toolbarAllowedItemIdentifiers( &self, toolbar: &NSToolbar, ) -> Retained<NSArray<NSToolbarItemIdentifier>>

Available on crate feature NSToolbar only.
Source

pub fn toolbarSelectableItemIdentifiers( &self, toolbar: &NSToolbar, ) -> Retained<NSArray<NSToolbarItemIdentifier>>

Available on crate feature NSToolbar only.
Source§

impl NSTabViewController

Methods declared on superclass NSViewController.

Source

pub fn initWithNibName_bundle( this: Allocated<Self>, nib_name_or_nil: Option<&NSNibName>, nib_bundle_or_nil: Option<&NSBundle>, ) -> Retained<Self>

Available on crate feature NSNib only.
Source

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

§Safety

coder possibly has further requirements.

Source§

impl NSTabViewController

Methods declared on superclass NSResponder.

Source

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

Source§

impl NSTabViewController

Methods declared on superclass NSObject.

Source

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

Methods from Deref<Target = NSViewController>§

Source

pub fn nibName(&self) -> Option<Retained<NSNibName>>

Available on crate feature NSNib only.
Source

pub fn nibBundle(&self) -> Option<Retained<NSBundle>>

Source

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

Source

pub unsafe fn setRepresentedObject( &self, represented_object: Option<&AnyObject>, )

Setter for representedObject.

§Safety

represented_object should be of the correct type.

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 view(&self) -> Retained<NSView>

Available on crate feature NSView only.
Source

pub fn setView(&self, view: &NSView)

Available on crate feature NSView only.

Setter for view.

Source

pub fn viewIfLoaded(&self) -> Option<Retained<NSView>>

Available on crate feature NSView only.
Source

pub fn loadView(&self)

Source

pub fn loadViewIfNeeded(&self)

Source

pub unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo( &self, delegate: Option<&AnyObject>, did_commit_selector: Option<Sel>, context_info: *mut c_void, )

§Safety
  • delegate should be of the correct type.
  • did_commit_selector must be a valid selector.
  • context_info must be a valid pointer or null.
Source

pub fn commitEditing(&self) -> bool

Source

pub fn discardEditing(&self)

Source

pub fn viewDidLoad(&self)

Source

pub fn isViewLoaded(&self) -> bool

Source

pub fn viewWillAppear(&self)

Source

pub fn viewDidAppear(&self)

Source

pub fn viewWillDisappear(&self)

Source

pub fn viewDidDisappear(&self)

Source

pub fn preferredContentSize(&self) -> NSSize

Source

pub fn setPreferredContentSize(&self, preferred_content_size: NSSize)

Source

pub fn updateViewConstraints(&self)

Source

pub fn viewWillLayout(&self)

Source

pub fn viewDidLayout(&self)

Source

pub fn presentViewController_animator( &self, view_controller: &NSViewController, animator: &ProtocolObject<dyn NSViewControllerPresentationAnimator>, )

Source

pub fn dismissViewController(&self, view_controller: &NSViewController)

Source

pub unsafe fn dismissController(&self, sender: Option<&AnyObject>)

§Safety

sender should be of the correct type.

Source

pub fn presentedViewControllers( &self, ) -> Option<Retained<NSArray<NSViewController>>>

Source

pub unsafe fn presentingViewController( &self, ) -> Option<Retained<NSViewController>>

§Safety

This is not retained internally, you must ensure the object is still alive.

Source

pub fn presentViewControllerAsSheet(&self, view_controller: &NSViewController)

Source

pub fn presentViewControllerAsModalWindow( &self, view_controller: &NSViewController, )

Source

pub fn presentViewController_asPopoverRelativeToRect_ofView_preferredEdge_behavior( &self, view_controller: &NSViewController, positioning_rect: NSRect, positioning_view: &NSView, preferred_edge: NSRectEdge, behavior: NSPopoverBehavior, )

Available on crate features NSPopover and NSView only.
Source

pub fn presentViewController_asPopoverRelativeToRect_ofView_preferredEdge_behavior_hasFullSizeContent( &self, view_controller: &NSViewController, positioning_rect: NSRect, positioning_view: &NSView, preferred_edge: NSRectEdge, behavior: NSPopoverBehavior, has_full_size_content: bool, )

Available on crate features NSPopover and NSView only.
Source

pub fn transitionFromViewController_toViewController_options_completionHandler( &self, from_view_controller: &NSViewController, to_view_controller: &NSViewController, options: NSViewControllerTransitionOptions, completion: Option<&DynBlock<dyn Fn()>>, )

Available on crate feature block2 only.
Source

pub fn parentViewController(&self) -> Option<Retained<NSViewController>>

Source

pub fn childViewControllers(&self) -> Retained<NSArray<NSViewController>>

Source

pub fn setChildViewControllers( &self, child_view_controllers: &NSArray<NSViewController>, )

Setter for childViewControllers.

This is copied when set.

Source

pub fn addChildViewController(&self, child_view_controller: &NSViewController)

Source

pub fn removeFromParentViewController(&self)

Source

pub fn insertChildViewController_atIndex( &self, child_view_controller: &NSViewController, index: NSInteger, )

Source

pub fn removeChildViewControllerAtIndex(&self, index: NSInteger)

Source

pub fn preferredContentSizeDidChangeForViewController( &self, view_controller: &NSViewController, )

Source

pub fn viewWillTransitionToSize(&self, new_size: NSSize)

Source

pub fn storyboard(&self) -> Option<Retained<NSStoryboard>>

Available on crate feature NSStoryboard only.
Source

pub fn extensionContext(&self) -> Option<Retained<NSExtensionContext>>

Source

pub fn sourceItemView(&self) -> Option<Retained<NSView>>

Available on crate feature NSView only.
Source

pub fn setSourceItemView(&self, source_item_view: Option<&NSView>)

Available on crate feature NSView only.

Setter for sourceItemView.

Source

pub fn preferredScreenOrigin(&self) -> NSPoint

Source

pub fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint)

Source

pub fn preferredMinimumSize(&self) -> NSSize

Source

pub fn preferredMaximumSize(&self) -> NSSize

Methods from Deref<Target = NSResponder>§

Source

pub fn interfaceStyle(&self) -> NSInterfaceStyle

👎Deprecated
Available on crate feature NSInterfaceStyle only.
Source

pub fn setInterfaceStyle(&self, interface_style: NSInterfaceStyle)

👎Deprecated
Available on crate feature NSInterfaceStyle only.
Source

pub unsafe fn nextResponder(&self) -> Option<Retained<NSResponder>>

§Safety

This is not retained internally, you must ensure the object is still alive.

Source

pub unsafe fn setNextResponder(&self, next_responder: Option<&NSResponder>)

Setter for nextResponder.

§Safety

This is unretained, you must ensure the object is kept alive while in use.

Source

pub unsafe fn tryToPerform_with( &self, action: Sel, object: Option<&AnyObject>, ) -> bool

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

pub fn performKeyEquivalent(&self, event: &NSEvent) -> bool

Available on crate feature NSEvent only.
Source

pub fn validRequestorForSendType_returnType( &self, send_type: Option<&NSPasteboardType>, return_type: Option<&NSPasteboardType>, ) -> Option<Retained<AnyObject>>

Available on crate feature NSPasteboard only.
Source

pub fn mouseDown(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn rightMouseDown(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn otherMouseDown(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn mouseUp(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn rightMouseUp(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn otherMouseUp(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn mouseMoved(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn mouseDragged(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn mouseCancelled(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn scrollWheel(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn rightMouseDragged(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn otherMouseDragged(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn mouseEntered(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn mouseExited(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn keyDown(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn keyUp(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn flagsChanged(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn tabletPoint(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn tabletProximity(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn cursorUpdate(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn magnifyWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn rotateWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn swipeWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn beginGestureWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn endGestureWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn smartMagnifyWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn changeModeWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn touchesBeganWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn touchesMovedWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn touchesEndedWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn touchesCancelledWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn quickLookWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn pressureChangeWithEvent(&self, event: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn contextMenuKeyDown(&self, event: &NSEvent)

Available on crate feature NSEvent only.

Handle a key event that should present a context menu at the user focus.

Most applications should not override this method. Instead, you should customize the context menu displayed from a keyboard event by implementing menuForEvent: and selectionAnchorRect, or showContextMenuForSelection:, rather than this method.

You should only override this method when you do not want the system-provided default behavior for the context menu hotkey, either for a specific key combination, or for the hotkey in general. For example, if your application already provides a different behavior for control-Return (the default context menu hotkey definition), and you want to preserve that behavior, you should override this method to handle that specific key combination, and then return without calling super. Note that the user may customize the hotkey to a different key combination, so in this example, if any other key combination is passed to your method, you would call super.

An implementation of this method should call [super contextMenuKeyDown:event] to pass the request up the responder chain. If the message reaches the application object, NSApplication’s implementation of this method will send showContextMenuForSelection: to the responder chain. If you do not call super, then no further handling of the key event will be performed.

Note: In some cases, showContextMenuForSelection: will be called without a prior call to contextMenuKeyDown:. This occurs when a view receives an Accessibility ShowMenu action, or when the user has created a Cocoa Text key binding to map a different key combination to the showContextMenuForSelection: action.

Parameter event: The key down event that matches the system-wide context menu hotkey combination.

See also: showContextMenuForSelection:

Source

pub unsafe fn noResponderFor(&self, event_selector: Sel)

§Safety

event_selector must be a valid selector.

Source

pub fn acceptsFirstResponder(&self) -> bool

Source

pub fn becomeFirstResponder(&self) -> bool

Source

pub fn resignFirstResponder(&self) -> bool

Source

pub fn interpretKeyEvents(&self, event_array: &NSArray<NSEvent>)

Available on crate feature NSEvent only.
Source

pub fn flushBufferedKeyEvents(&self)

Source

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

Available on crate feature NSMenu only.
Source

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

Available on crate feature NSMenu only.

Setter for menu.

Source

pub unsafe fn showContextHelp(&self, sender: Option<&AnyObject>)

§Safety

sender should be of the correct type.

Source

pub fn helpRequested(&self, event_ptr: &NSEvent)

Available on crate feature NSEvent only.
Source

pub fn shouldBeTreatedAsInkEvent(&self, event: &NSEvent) -> bool

Available on crate feature NSEvent only.
Source

pub fn wantsScrollEventsForSwipeTrackingOnAxis( &self, axis: NSEventGestureAxis, ) -> bool

Available on crate feature NSEvent only.
Source

pub fn wantsForwardedScrollEventsForAxis( &self, axis: NSEventGestureAxis, ) -> bool

Available on crate feature NSEvent only.
Source

pub unsafe fn supplementalTargetForAction_sender( &self, action: Sel, sender: Option<&AnyObject>, ) -> Option<Retained<AnyObject>>

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

pub fn undoManager(&self) -> Option<Retained<NSUndoManager>>

Source

pub fn validateProposedFirstResponder_forEvent( &self, responder: &NSResponder, event: Option<&NSEvent>, ) -> bool

Available on crate feature NSEvent only.
Source

pub unsafe fn presentError_modalForWindow_delegate_didPresentSelector_contextInfo( &self, error: &NSError, window: &NSWindow, delegate: Option<&AnyObject>, did_present_selector: Option<Sel>, context_info: *mut c_void, )

Available on crate feature NSWindow only.
§Safety
  • delegate should be of the correct type.
  • did_present_selector must be a valid selector.
  • context_info must be a valid pointer or null.
Source

pub fn presentError(&self, error: &NSError) -> bool

Source

pub fn willPresentError(&self, error: &NSError) -> Retained<NSError>

Source

pub unsafe fn performTextFinderAction(&self, sender: Option<&AnyObject>)

§Safety

sender should be of the correct type.

Source

pub unsafe fn newWindowForTab(&self, sender: Option<&AnyObject>)

§Safety

sender should be of the correct type.

Source

pub unsafe fn showWritingTools(&self, sender: Option<&AnyObject>)

§Safety

sender should be of the correct type.

Source

pub fn performMnemonic(&self, string: &NSString) -> bool

👎Deprecated: This has always returned NO and had no effect on macOS
Source

pub fn touchBar(&self) -> Option<Retained<NSTouchBar>>

Available on crate feature NSTouchBar only.
Source

pub fn setTouchBar(&self, touch_bar: Option<&NSTouchBar>)

Available on crate feature NSTouchBar only.

Setter for touchBar.

Source

pub fn makeTouchBar(&self) -> Option<Retained<NSTouchBar>>

Available on crate feature NSTouchBar only.
Source

pub fn userActivity(&self) -> Option<Retained<NSUserActivity>>

Available on crate feature NSUserActivity only.
Source

pub fn setUserActivity(&self, user_activity: Option<&NSUserActivity>)

Available on crate feature NSUserActivity only.

Setter for userActivity.

Source

pub fn updateUserActivityState(&self, user_activity: &NSUserActivity)

Available on crate feature NSUserActivity only.
Source

pub unsafe fn encodeRestorableStateWithCoder(&self, coder: &NSCoder)

Available on crate feature NSWindowRestoration only.
§Safety

coder possibly has further requirements.

Source

pub unsafe fn encodeRestorableStateWithCoder_backgroundQueue( &self, coder: &NSCoder, queue: &NSOperationQueue, )

Available on crate feature NSWindowRestoration only.
§Safety
  • coder possibly has further requirements.
  • queue possibly has additional threading requirements.
Source

pub unsafe fn restoreStateWithCoder(&self, coder: &NSCoder)

Available on crate feature NSWindowRestoration only.
§Safety

coder possibly has further requirements.

Source

pub fn invalidateRestorableState(&self)

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

Dynamically find the class of this object.

§Panics

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

§Example

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

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

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

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

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

Use Ivar::load instead.

§Safety

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

See Ivar::load_ptr for details surrounding this.

Source

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

Available on crate feature NSAccessibilityConstants only.

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

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

§Mutable classes

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

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

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

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

§Generic classes

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

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

§Panics

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

§Examples

Cast an NSString back and forth from NSObject.

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

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

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

use objc2_foundation::{NSObject, NSString};

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

Try to cast to an array of strings.

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

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

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

Downcast when processing each element instead.

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

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

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

Trait Implementations§

Source§

impl AsRef<AnyObject> for NSTabViewController

Source§

fn as_ref(&self) -> &AnyObject

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

impl AsRef<NSObject> for NSTabViewController

Source§

fn as_ref(&self) -> &NSObject

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

impl AsRef<NSResponder> for NSTabViewController

Source§

fn as_ref(&self) -> &NSResponder

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

impl AsRef<NSTabViewController> for NSTabViewController

Source§

fn as_ref(&self) -> &Self

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

impl AsRef<NSViewController> for NSTabViewController

Source§

fn as_ref(&self) -> &NSViewController

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

impl Borrow<AnyObject> for NSTabViewController

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for NSTabViewController

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSResponder> for NSTabViewController

Source§

fn borrow(&self) -> &NSResponder

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSViewController> for NSTabViewController

Source§

fn borrow(&self) -> &NSViewController

Immutably borrows from an owned value. Read more
Source§

impl ClassType for NSTabViewController

Source§

const NAME: &'static str = "NSTabViewController"

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

type Super = NSViewController

The superclass of this class. Read more
Source§

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

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

fn class() -> &'static AnyClass

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

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

Get an immutable reference to the superclass.
Source§

impl Debug for NSTabViewController

Source§

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

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

impl Deref for NSTabViewController

Source§

type Target = NSViewController

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl Hash for NSTabViewController

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 NSTabViewController

Source§

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

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

impl NSCoding for NSTabViewController

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 NSEditor for NSTabViewController

Source§

fn discardEditing(&self)
where Self: Sized + Message,

Available on crate feature NSKeyValueBinding only.
Source§

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

Available on crate feature NSKeyValueBinding only.
Source§

unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo( &self, delegate: Option<&AnyObject>, did_commit_selector: Option<Sel>, context_info: *mut c_void, )
where Self: Sized + Message,

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

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

Available on crate feature NSKeyValueBinding only.
Source§

impl NSObjectProtocol for NSTabViewController

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 NSSeguePerforming for NSTabViewController

Source§

unsafe fn prepareForSegue_sender( &self, segue: &NSStoryboardSegue, sender: Option<&AnyObject>, )
where Self: Sized + Message,

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

unsafe fn performSegueWithIdentifier_sender( &self, identifier: &NSStoryboardSegueIdentifier, sender: Option<&AnyObject>, )
where Self: Sized + Message,

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

unsafe fn shouldPerformSegueWithIdentifier_sender( &self, identifier: &NSStoryboardSegueIdentifier, sender: Option<&AnyObject>, ) -> bool
where Self: Sized + Message,

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

impl NSTabViewDelegate for NSTabViewController

Source§

fn tabView_shouldSelectTabViewItem( &self, tab_view: &NSTabView, tab_view_item: Option<&NSTabViewItem>, ) -> bool
where Self: Sized + Message,

Available on crate features NSResponder and NSTabViewItem and NSView and NSTabView only.
Source§

fn tabView_willSelectTabViewItem( &self, tab_view: &NSTabView, tab_view_item: Option<&NSTabViewItem>, )
where Self: Sized + Message,

Available on crate features NSResponder and NSTabViewItem and NSView and NSTabView only.
Source§

fn tabView_didSelectTabViewItem( &self, tab_view: &NSTabView, tab_view_item: Option<&NSTabViewItem>, )
where Self: Sized + Message,

Available on crate features NSResponder and NSTabViewItem and NSView and NSTabView only.
Source§

fn tabViewDidChangeNumberOfTabViewItems(&self, tab_view: &NSTabView)
where Self: Sized + Message,

Available on crate features NSResponder and NSView and NSTabView only.
Source§

impl NSToolbarDelegate for NSTabViewController

Source§

fn toolbar_itemForItemIdentifier_willBeInsertedIntoToolbar( &self, toolbar: &NSToolbar, item_identifier: &NSToolbarItemIdentifier, flag: bool, ) -> Option<Retained<NSToolbarItem>>
where Self: Sized + Message,

Available on crate features NSToolbar and NSToolbarItem only.
Given an item identifier, this method returns an item. Note that it is expected that each toolbar receives its own distinct copies and each time this method is called a new item must be returned. If the item has a custom view, that view should be in place when the item is returned. Finally, do not assume the returned item is going to be added as an active item in the toolbar. In fact, the toolbar may ask for items here in order to construct the customization palette. If willBeInsertedIntoToolbar is YES, the returned item will be inserted, and you can expect toolbarWillAddItem: is about to be posted.
Source§

fn toolbarDefaultItemIdentifiers( &self, toolbar: &NSToolbar, ) -> Retained<NSArray<NSToolbarItemIdentifier>>
where Self: Sized + Message,

Available on crate feature NSToolbar only.
Returns the ordered list of items to be shown in the toolbar by default. If during initialization, no overriding values are found in the user defaults, or if the user chooses to revert to the default items this set will be used.
Source§

fn toolbarAllowedItemIdentifiers( &self, toolbar: &NSToolbar, ) -> Retained<NSArray<NSToolbarItemIdentifier>>
where Self: Sized + Message,

Available on crate feature NSToolbar only.
Returns the list of all allowed items by identifier. By default, the toolbar does not assume any items are allowed so every allowed item must be explicitly listed. The set of allowed items is used to construct the customization palette. The order of items does not necessarily guarantee the order of appearance in the palette. At minimum, you should return the default item list.
Source§

fn toolbarSelectableItemIdentifiers( &self, toolbar: &NSToolbar, ) -> Retained<NSArray<NSToolbarItemIdentifier>>
where Self: Sized + Message,

Available on crate feature NSToolbar only.
Optional method. Those wishing to indicate item selection in a toolbar should implement this method to return a non-empty array of selectable item identifiers. If implemented, the toolbar will remember and display the selected item with a special highlight. A selected item is one whose item identifier matches the current selected item identifier. Clicking on an item whose identifier is selectable will automatically update the toolbar’s selectedItemIdentifier when possible. See selectedItemIdentifier for more details.
Source§

fn toolbarImmovableItemIdentifiers( &self, toolbar: &NSToolbar, ) -> Retained<NSSet<NSToolbarItemIdentifier>>
where Self: Sized + Message,

Available on crate feature NSToolbar only.
Items in this set cannot be dragged or removed by the user.
Source§

fn toolbar_itemIdentifier_canBeInsertedAtIndex( &self, toolbar: &NSToolbar, item_identifier: &NSToolbarItemIdentifier, index: NSInteger, ) -> bool
where Self: Sized + Message,

Available on crate feature NSToolbar only.
Whether or not an item can be moved to a specified position in the toolbar. If implemented, this method will be called during a user drag and does not necessarily indicate the final position of an item. An index of NSNotFound indicates the item would be removed from the toolbar.
Source§

fn toolbarWillAddItem(&self, notification: &NSNotification)
where Self: Sized + Message,

Available on crate feature NSToolbar only.
Before a new item is added to the toolbar, this notification is posted. This is the best place to notice a new item is going into the toolbar. For instance, if you need to cache a reference to the toolbar item or need to set up some initial state, this is the best place to do it. The notification object is the toolbar to which the item is being added. The item being added and its new index can be found by referencing NSToolbarItemKey and NSToolbarNewIndexKey in the userInfo dictionary respectively.
Source§

fn toolbarDidRemoveItem(&self, notification: &NSNotification)
where Self: Sized + Message,

Available on crate feature NSToolbar only.
After an item is removed from a toolbar the notification is sent. This allows the chance to tear down information related to the item that may have been cached. The notification object is the toolbar from which the item is being removed. The item being removed is found by referencing the NSToolbarItemKey in the userInfo.
Source§

impl NSUserInterfaceItemIdentification for NSTabViewController

Source§

fn identifier(&self) -> Option<Retained<NSUserInterfaceItemIdentifier>>
where Self: Sized + Message,

Available on crate feature NSUserInterfaceItemIdentification only.
Source§

fn setIdentifier(&self, identifier: Option<&NSUserInterfaceItemIdentifier>)
where Self: Sized + Message,

Available on crate feature NSUserInterfaceItemIdentification only.
Setter for identifier. Read more
Source§

impl PartialEq for NSTabViewController

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 NSTabViewController

Source§

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

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

impl DowncastTarget for NSTabViewController

Source§

impl Eq for NSTabViewController

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,