Struct NSSplitViewController

Source
#[repr(C)]
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 unsafe 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 unsafe fn setSplitView(&self, split_view: &NSSplitView)

Available on crate features NSSplitView and NSView only.

Setter for splitView.

Source

pub unsafe 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 unsafe fn setSplitViewItems( &self, split_view_items: &NSArray<NSSplitViewItem>, )

Available on crate feature NSSplitViewItem only.

Setter for splitViewItems.

Source

pub unsafe 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 unsafe 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 unsafe 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 unsafe 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 unsafe 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 unsafe fn setMinimumThicknessForInlineSidebars( &self, minimum_thickness_for_inline_sidebars: CGFloat, )

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

pub unsafe 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 unsafe fn viewDidLoad(&self)

Source

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

Available on crate features NSSplitView and NSView only.
Source

pub unsafe 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 unsafe fn splitView_shouldHideDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> bool

Available on crate features NSSplitView and NSView only.
Source

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

Source§

impl NSSplitViewController

Methods declared on superclass NSResponder.

Source

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

Source§

impl NSSplitViewController

Methods declared on superclass NSObject.

Source

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

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.

Methods from Deref<Target = NSViewController>§

Source

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

Available on crate feature NSNib only.
Source

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

Source

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

Source

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

Setter for representedObject.

Source

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

Source

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

Setter for title.

Source

pub unsafe fn view(&self) -> Retained<NSView>

Available on crate feature NSView only.
Source

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

Available on crate feature NSView only.

Setter for view.

Source

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

Available on crate feature NSView only.
Source

pub unsafe fn loadView(&self)

Source

pub unsafe fn loadViewIfNeeded(&self)

Source

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

Source

pub unsafe fn commitEditing(&self) -> bool

Source

pub unsafe fn discardEditing(&self)

Source

pub unsafe fn viewDidLoad(&self)

Source

pub unsafe fn isViewLoaded(&self) -> bool

Source

pub unsafe fn viewWillAppear(&self)

Source

pub unsafe fn viewDidAppear(&self)

Source

pub unsafe fn viewWillDisappear(&self)

Source

pub unsafe fn viewDidDisappear(&self)

Source

pub unsafe fn preferredContentSize(&self) -> NSSize

Source

pub unsafe fn setPreferredContentSize(&self, preferred_content_size: NSSize)

Source

pub unsafe fn updateViewConstraints(&self)

Source

pub unsafe fn viewWillLayout(&self)

Source

pub unsafe fn viewDidLayout(&self)

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

pub unsafe 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 unsafe 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 unsafe 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 unsafe fn parentViewController(&self) -> Option<Retained<NSViewController>>

Source

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

Source

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

Source

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

Source

pub unsafe fn removeFromParentViewController(&self)

Source

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

Source

pub unsafe fn removeChildViewControllerAtIndex(&self, index: NSInteger)

Source

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

Source

pub unsafe fn viewWillTransitionToSize(&self, new_size: NSSize)

Source

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

Available on crate feature NSStoryboard only.
Source

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

Source

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

Available on crate feature NSView only.
Source

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

Available on crate feature NSView only.

Setter for sourceItemView.

Source

pub unsafe fn preferredScreenOrigin(&self) -> NSPoint

Source

pub unsafe fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint)

Source

pub unsafe fn preferredMinimumSize(&self) -> NSSize

Source

pub unsafe fn preferredMaximumSize(&self) -> NSSize

Methods from Deref<Target = NSResponder>§

Source

pub unsafe fn interfaceStyle(&self) -> NSInterfaceStyle

👎Deprecated
Available on crate feature NSInterfaceStyle only.
Source

pub unsafe fn setInterfaceStyle(&self, interface_style: NSInterfaceStyle)

👎Deprecated
Available on crate feature NSInterfaceStyle only.
Source

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

Source

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

Setter for nextResponder.

Source

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

Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSPasteboard only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

pub unsafe 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)

Source

pub unsafe fn acceptsFirstResponder(&self) -> bool

Source

pub unsafe fn becomeFirstResponder(&self) -> bool

Source

pub unsafe fn resignFirstResponder(&self) -> bool

Source

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

Available on crate feature NSEvent only.
Source

pub unsafe fn flushBufferedKeyEvents(&self)

Source

pub unsafe 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>)

Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Available on crate feature NSEvent only.
Source

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

Source

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

Source

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

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

Source

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

Source

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

Source

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

Source

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

Source

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

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

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

Available on crate feature NSTouchBar only.
Source

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

Available on crate feature NSTouchBar only.

Setter for touchBar.

Source

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

Available on crate feature NSTouchBar only.
Source

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

Available on crate feature NSUserActivity only.
Source

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

Available on crate feature NSUserActivity only.

Setter for userActivity.

Source

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

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

Available on crate feature NSWindowRestoration only.
Source

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

Available on crate feature NSWindowRestoration only.
Source

pub unsafe 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,

Source§

unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>
where Self: Sized + Message,

Source§

impl NSEditor for NSSplitViewController

Source§

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

Available on crate feature NSKeyValueBinding only.
Source§

unsafe 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.
Source§

unsafe 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.
Source§

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

Available on crate feature NSStoryboardSegue only.
Source§

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

Available on crate feature NSStoryboardSegue only.
Source§

impl NSSplitViewDelegate for NSSplitViewController

Source§

unsafe 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§

unsafe 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§

unsafe 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§

unsafe 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§

unsafe 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§

unsafe 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§

unsafe 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§

unsafe 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§

unsafe 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§

unsafe 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§

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

Available on crate feature NSSplitView only.
Source§

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

Available on crate feature NSSplitView only.
Source§

impl NSUserInterfaceItemIdentification for NSSplitViewController

Source§

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

Available on crate feature NSUserInterfaceItemIdentification only.
Source§

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

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

impl NSUserInterfaceValidations for NSSplitViewController

Source§

unsafe 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,