NSSplitViewController

Struct NSSplitViewController 

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

NSSplitViewController is a container view controller that manages side-by-side (horizontal or vertical) children view controllers. Views are lazily loaded. For instance, adding a collapsed SplitViewItem will not load the associated ViewController’s view until it is uncollapsed. The NSSplitViewController is set as the delegate of its managed NSSplitView. Any overrides of NSSplitViewDelegate methods must call super. Only the -vertical,``-autosaveName,and divider properties should be manipulated on the managed NSSplitView. Changing other properties (such as delegate, manipulating subviews, holding priorities) will cause an exception to be thrown. Autolayout must be used with NSSplitViewController to properly control the layout of the child views and the animations of collapses and reveals. e.g., Constraints can be used to setup whether a window should grow/shrink or stay the same size when showing and hiding a sidebar. NSViewController’s methods -addChildViewController:,``-insertViewController:atIndex:,and -removeChildViewControllerAtIndex:can all be used as convience methods to add children; default SplitViewItems will be appropriately created or destroyed.

See also Apple’s documentation

Implementations§

Source§

impl NSSplitViewController

Source

pub fn splitView(&self) -> Retained<NSSplitView>

Available on crate features NSSplitView and NSView only.

The split view managed by the SplitViewController. This can be used to customize view properties such as the dividerStyle, vertical, and autosaveName. It is not guaranteed to be the same view as the receiver’s ‘view’ property. The default created splitView is vertical with a dividerStyle of NSSplitViewDividerStyleThin.To provide a custom NSSplitView, set the splitView property anytime before self.viewLoaded is YES.

Source

pub fn setSplitView(&self, split_view: &NSSplitView)

Available on crate features NSSplitView and NSView only.

Setter for splitView.

Source

pub fn splitViewItems(&self) -> Retained<NSArray<NSSplitViewItem>>

Available on crate feature NSSplitViewItem only.

The array of SplitViewItems that correspond to the current child view controllers. After a child view controller is added to the receiving splitViewController, a NSSplitViewItem with the default values will be created for it. Once the child is removed, its corresponding splitViewItem will be removed from the splitViewItems array. Setting this will call through to -insertSplitViewItem:atIndexand -removeSplitViewItem:for items that are new or need removal.

Source

pub fn setSplitViewItems(&self, split_view_items: &NSArray<NSSplitViewItem>)

Available on crate feature NSSplitViewItem only.

Setter for splitViewItems.

This is copied when set.

Source

pub fn addSplitViewItem(&self, split_view_item: &NSSplitViewItem)

Available on crate feature NSSplitViewItem only.

Adds a SplitViewItem to the end of the SplitViewController. If the receiver’s view is loaded and the SplitViewItem is not collapsed, the SplitViewItem’s viewController’s view will be loaded and added to the splitView. This calls through to -insertSplitViewItem:atIndex:.

Parameter splitViewItem: The SplitViewItem to add. It must have a viewController set by the time it is added or an exception will be thrown. An exception will also be thrown if splitViewItem is nil.

Source

pub fn insertSplitViewItem_atIndex( &self, split_view_item: &NSSplitViewItem, index: NSInteger, )

Available on crate feature NSSplitViewItem only.

Adds a SplitViewItem to a given index in the SplitViewController. If the receiver’s view is loaded and the SplitViewItem is not collapsed, the SplitViewItem’s viewController’s view will be loaded and added to the splitView.Subclasses must call through -insertSplitViewItem:atIndex:to add a SplitViewItem.

Parameter splitViewItem: The SplitViewItem 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 splitViewItem is nil.

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

Source

pub fn removeSplitViewItem(&self, split_view_item: &NSSplitViewItem)

Available on crate feature NSSplitViewItem only.

Removes a SplitViewItem from the receiver. The layout of the splitViewwill be adjusted for its removal. Subclasses must call through -removeSplitViewItem:to remove a SplitViewItem.

Parameter splitViewItem: The SplitViewItem to remove. An exception will be thrown if splitViewItemis not in the SplitViewController or if it is nil.

Source

pub fn splitViewItemForViewController( &self, view_controller: &NSViewController, ) -> Option<Retained<NSSplitViewItem>>

Available on crate feature NSSplitViewItem only.

Returns the corresponding SplitViewItem for a given child ViewController.

Parameter viewController: The ViewController to look up.

Returns: The corresponding SplitViewItem. Returns nil if viewControlleris not a child of the SplitViewController.

Source

pub fn minimumThicknessForInlineSidebars(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.

The minimum thickness in the primary axis of split view (width for “vertical”, height otherwise) before sidebar items will automatically collapse. If reshown in fullscreen, they will overlay over the other split items. Auto-collapsed sidebars will automatically uncollapse if the thickness is increased back to or past the minimum thickness. Defaults to NSSplitViewControllerAutomaticDimension,which will use the effective minimum sizes of the split view item views as described by constraints in the window to determine the minimum size for inline sidebars. Once constraints establishing the minimum size can’t be satisfied for all non-collapsed split panes, all sidebars will auto-collapse. When fullscreen, if a sidebar tries to uncollapse in this state, it will overlay.

Source

pub fn setMinimumThicknessForInlineSidebars( &self, minimum_thickness_for_inline_sidebars: CGFloat, )

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

pub fn validateUserInterfaceItem( &self, item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>, ) -> bool

Available on crate feature NSUserInterfaceValidation only.

Validates items with an action of toggleSidebar: to reflect the status of the sidebar item contained within the receiver.

Source

pub fn viewDidLoad(&self)

Source

pub fn splitView_canCollapseSubview( &self, split_view: &NSSplitView, subview: &NSView, ) -> bool

Available on crate features NSSplitView and NSView only.
Source

pub fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex( &self, split_view: &NSSplitView, subview: &NSView, divider_index: NSInteger, ) -> bool

👎Deprecated: NSSplitView no longer supports collapsing sections via double-click. This delegate method is never called, and NSSplitViewController’s implementation always returns NO.
Available on crate features NSSplitView and NSView only.
Source

pub fn splitView_shouldHideDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> bool

Available on crate features NSSplitView and NSView only.
Source

pub fn splitView_effectiveRect_forDrawnRect_ofDividerAtIndex( &self, split_view: &NSSplitView, proposed_effective_rect: NSRect, drawn_rect: NSRect, divider_index: NSInteger, ) -> NSRect

Available on crate features NSSplitView and NSView only.
Source

pub fn splitView_additionalEffectiveRectOfDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> NSRect

Available on crate features NSSplitView and NSView only.
Source§

impl NSSplitViewController

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 NSSplitViewController

Methods declared on superclass NSResponder.

Source

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

Source§

impl NSSplitViewController

Methods declared on superclass NSObject.

Source

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

Source§

impl NSSplitViewController

NSSplitViewControllerToggleSidebarAction.

Source

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

Animatedly collapses or uncollapses the first sidebar split view item in the receiver. Does nothing if the receiver does not contain any sidebars.

§Safety

sender should be of the correct type.

Source

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

Animatedly collapses or uncollapses the first inspector split view item in the receiver. Does nothing if the receiver does not contain any inspectors.

§Safety

sender should be of the correct type.

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 NSSplitViewController

Source§

fn as_ref(&self) -> &AnyObject

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

impl AsRef<NSObject> for NSSplitViewController

Source§

fn as_ref(&self) -> &NSObject

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

impl AsRef<NSResponder> for NSSplitViewController

Source§

fn as_ref(&self) -> &NSResponder

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

impl AsRef<NSSplitViewController> for NSSplitViewController

Source§

fn as_ref(&self) -> &Self

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

impl AsRef<NSViewController> for NSSplitViewController

Source§

fn as_ref(&self) -> &NSViewController

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

impl Borrow<AnyObject> for NSSplitViewController

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for NSSplitViewController

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSResponder> for NSSplitViewController

Source§

fn borrow(&self) -> &NSResponder

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSViewController> for NSSplitViewController

Source§

fn borrow(&self) -> &NSViewController

Immutably borrows from an owned value. Read more
Source§

impl ClassType for NSSplitViewController

Source§

const NAME: &'static str = "NSSplitViewController"

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 = <<NSSplitViewController 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 NSSplitViewController

Source§

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

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

impl Deref for NSSplitViewController

Source§

type Target = NSViewController

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl Hash for NSSplitViewController

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 NSSplitViewController

Source§

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

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

impl NSCoding for NSSplitViewController

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 NSSplitViewController

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 NSSplitViewController

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 NSSplitViewController

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 NSSplitViewDelegate for NSSplitViewController

Source§

fn splitView_canCollapseSubview( &self, split_view: &NSSplitView, subview: &NSView, ) -> bool
where Self: Sized + Message,

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

fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex( &self, split_view: &NSSplitView, subview: &NSView, divider_index: NSInteger, ) -> bool
where Self: Sized + Message,

👎Deprecated: NSSplitView no longer supports collapsing sections via double-click. This delegate method is never called.
Available on crate features NSResponder and NSView and NSSplitView only.
Source§

fn splitView_constrainMinCoordinate_ofSubviewAt( &self, split_view: &NSSplitView, proposed_minimum_position: CGFloat, divider_index: NSInteger, ) -> CGFloat
where Self: Sized + Message,

Available on crate features NSResponder and NSView and objc2-core-foundation and NSSplitView only.
Source§

fn splitView_constrainMaxCoordinate_ofSubviewAt( &self, split_view: &NSSplitView, proposed_maximum_position: CGFloat, divider_index: NSInteger, ) -> CGFloat
where Self: Sized + Message,

Available on crate features NSResponder and NSView and objc2-core-foundation and NSSplitView only.
Source§

fn splitView_constrainSplitPosition_ofSubviewAt( &self, split_view: &NSSplitView, proposed_position: CGFloat, divider_index: NSInteger, ) -> CGFloat
where Self: Sized + Message,

Available on crate features NSResponder and NSView and objc2-core-foundation and NSSplitView only.
Source§

fn splitView_resizeSubviewsWithOldSize( &self, split_view: &NSSplitView, old_size: NSSize, )
where Self: Sized + Message,

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

fn splitView_shouldAdjustSizeOfSubview( &self, split_view: &NSSplitView, view: &NSView, ) -> bool
where Self: Sized + Message,

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

fn splitView_shouldHideDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> bool
where Self: Sized + Message,

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

fn splitView_effectiveRect_forDrawnRect_ofDividerAtIndex( &self, split_view: &NSSplitView, proposed_effective_rect: NSRect, drawn_rect: NSRect, divider_index: NSInteger, ) -> NSRect
where Self: Sized + Message,

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

fn splitView_additionalEffectiveRectOfDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> NSRect
where Self: Sized + Message,

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

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

Available on crate feature NSSplitView only.
Source§

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

Available on crate feature NSSplitView only.
Source§

impl NSUserInterfaceItemIdentification for NSSplitViewController

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 NSUserInterfaceValidations for NSSplitViewController

Source§

fn validateUserInterfaceItem( &self, item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>, ) -> bool
where Self: Sized + Message,

Available on crate feature NSUserInterfaceValidation only.
Source§

impl PartialEq for NSSplitViewController

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 NSSplitViewController

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 NSSplitViewController

Source§

impl Eq for NSSplitViewController

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,