pub struct NSSplitViewController { /* private fields */ }
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
impl NSSplitViewController
Sourcepub fn splitView(&self) -> Retained<NSSplitView>
Available on crate features NSSplitView
and NSView
only.
pub fn splitView(&self) -> Retained<NSSplitView>
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 receivers ‘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.
Sourcepub fn setSplitView(&self, split_view: &NSSplitView)
Available on crate features NSSplitView
and NSView
only.
pub fn setSplitView(&self, split_view: &NSSplitView)
NSSplitView
and NSView
only.Setter for splitView
.
Sourcepub fn splitViewItems(&self) -> Retained<NSArray<NSSplitViewItem>>
Available on crate feature NSSplitViewItem
only.
pub fn splitViewItems(&self) -> Retained<NSArray<NSSplitViewItem>>
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:atIndex
and
-removeSplitViewItem:
for items that are new or need removal.
Sourcepub fn setSplitViewItems(&self, split_view_items: &NSArray<NSSplitViewItem>)
Available on crate feature NSSplitViewItem
only.
pub fn setSplitViewItems(&self, split_view_items: &NSArray<NSSplitViewItem>)
NSSplitViewItem
only.Setter for splitViewItems
.
This is copied when set.
Sourcepub fn addSplitViewItem(&self, split_view_item: &NSSplitViewItem)
Available on crate feature NSSplitViewItem
only.
pub fn addSplitViewItem(&self, split_view_item: &NSSplitViewItem)
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.
Sourcepub fn insertSplitViewItem_atIndex(
&self,
split_view_item: &NSSplitViewItem,
index: NSInteger,
)
Available on crate feature NSSplitViewItem
only.
pub fn insertSplitViewItem_atIndex( &self, split_view_item: &NSSplitViewItem, index: NSInteger, )
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
viewController
set 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
Sourcepub fn removeSplitViewItem(&self, split_view_item: &NSSplitViewItem)
Available on crate feature NSSplitViewItem
only.
pub fn removeSplitViewItem(&self, split_view_item: &NSSplitViewItem)
NSSplitViewItem
only.Removes a SplitViewItem from the receiver. The layout of the
splitView
will 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
splitViewItem
is not in the SplitViewController or if it is nil.
Sourcepub fn splitViewItemForViewController(
&self,
view_controller: &NSViewController,
) -> Option<Retained<NSSplitViewItem>>
Available on crate feature NSSplitViewItem
only.
pub fn splitViewItemForViewController( &self, view_controller: &NSViewController, ) -> Option<Retained<NSSplitViewItem>>
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
viewController
is not a child of the SplitViewController.
Sourcepub fn minimumThicknessForInlineSidebars(&self) -> CGFloat
Available on crate feature objc2-core-foundation
only.
pub fn minimumThicknessForInlineSidebars(&self) -> CGFloat
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.
Sourcepub fn setMinimumThicknessForInlineSidebars(
&self,
minimum_thickness_for_inline_sidebars: CGFloat,
)
Available on crate feature objc2-core-foundation
only.
pub fn setMinimumThicknessForInlineSidebars( &self, minimum_thickness_for_inline_sidebars: CGFloat, )
objc2-core-foundation
only.Setter for minimumThicknessForInlineSidebars
.
Sourcepub fn validateUserInterfaceItem(
&self,
item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>,
) -> bool
Available on crate feature NSUserInterfaceValidation
only.
pub fn validateUserInterfaceItem( &self, item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>, ) -> bool
NSUserInterfaceValidation
only.Validates items with an action of toggleSidebar:
to reflect the status of the sidebar item contained within the receiver.
pub fn viewDidLoad(&self)
pub fn splitView_canCollapseSubview( &self, split_view: &NSSplitView, subview: &NSView, ) -> bool
NSSplitView
and NSView
only.pub fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex( &self, split_view: &NSSplitView, subview: &NSView, divider_index: NSInteger, ) -> bool
NSSplitView
and NSView
only.pub fn splitView_shouldHideDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> bool
NSSplitView
and NSView
only.pub fn splitView_effectiveRect_forDrawnRect_ofDividerAtIndex( &self, split_view: &NSSplitView, proposed_effective_rect: NSRect, drawn_rect: NSRect, divider_index: NSInteger, ) -> NSRect
NSSplitView
and NSView
only.pub fn splitView_additionalEffectiveRectOfDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> NSRect
NSSplitView
and NSView
only.Source§impl NSSplitViewController
Methods declared on superclass NSViewController
.
impl NSSplitViewController
Methods declared on superclass NSViewController
.
Source§impl NSSplitViewController
Methods declared on superclass NSResponder
.
impl NSSplitViewController
Methods declared on superclass NSResponder
.
Source§impl NSSplitViewController
Methods declared on superclass NSObject
.
impl NSSplitViewController
Methods declared on superclass NSObject
.
pub fn new(mtm: MainThreadMarker) -> Retained<Self>
Source§impl NSSplitViewController
NSSplitViewControllerToggleSidebarAction.
impl NSSplitViewController
NSSplitViewControllerToggleSidebarAction.
Sourcepub unsafe fn toggleSidebar(&self, sender: Option<&AnyObject>)
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.
Sourcepub unsafe fn toggleInspector(&self, sender: Option<&AnyObject>)
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>§
pub fn nibName(&self) -> Option<Retained<NSNibName>>
NSNib
only.pub fn nibBundle(&self) -> Option<Retained<NSBundle>>
pub fn representedObject(&self) -> Option<Retained<AnyObject>>
Sourcepub unsafe fn setRepresentedObject(
&self,
represented_object: Option<&AnyObject>,
)
pub unsafe fn setRepresentedObject( &self, represented_object: Option<&AnyObject>, )
pub fn title(&self) -> Option<Retained<NSString>>
pub fn view(&self) -> Retained<NSView>
NSView
only.pub fn viewIfLoaded(&self) -> Option<Retained<NSView>>
NSView
only.pub fn loadView(&self)
pub fn loadViewIfNeeded(&self)
Sourcepub unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo(
&self,
delegate: Option<&AnyObject>,
did_commit_selector: Option<Sel>,
context_info: *mut c_void,
)
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.
pub fn commitEditing(&self) -> bool
pub fn discardEditing(&self)
pub fn viewDidLoad(&self)
pub fn isViewLoaded(&self) -> bool
pub fn viewWillAppear(&self)
pub fn viewDidAppear(&self)
pub fn viewWillDisappear(&self)
pub fn viewDidDisappear(&self)
pub fn preferredContentSize(&self) -> NSSize
Sourcepub fn setPreferredContentSize(&self, preferred_content_size: NSSize)
pub fn setPreferredContentSize(&self, preferred_content_size: NSSize)
Setter for preferredContentSize
.
pub fn updateViewConstraints(&self)
pub fn viewWillLayout(&self)
pub fn viewDidLayout(&self)
pub fn presentViewController_animator( &self, view_controller: &NSViewController, animator: &ProtocolObject<dyn NSViewControllerPresentationAnimator>, )
pub fn dismissViewController(&self, view_controller: &NSViewController)
Sourcepub unsafe fn dismissController(&self, sender: Option<&AnyObject>)
pub unsafe fn dismissController(&self, sender: Option<&AnyObject>)
§Safety
sender
should be of the correct type.
pub fn presentedViewControllers( &self, ) -> Option<Retained<NSArray<NSViewController>>>
Sourcepub unsafe fn presentingViewController(
&self,
) -> Option<Retained<NSViewController>>
pub unsafe fn presentingViewController( &self, ) -> Option<Retained<NSViewController>>
§Safety
This is not retained internally, you must ensure the object is still alive.
pub fn presentViewControllerAsSheet(&self, view_controller: &NSViewController)
pub fn presentViewControllerAsModalWindow( &self, view_controller: &NSViewController, )
pub fn presentViewController_asPopoverRelativeToRect_ofView_preferredEdge_behavior( &self, view_controller: &NSViewController, positioning_rect: NSRect, positioning_view: &NSView, preferred_edge: NSRectEdge, behavior: NSPopoverBehavior, )
NSPopover
and NSView
only.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, )
NSPopover
and NSView
only.pub fn transitionFromViewController_toViewController_options_completionHandler( &self, from_view_controller: &NSViewController, to_view_controller: &NSViewController, options: NSViewControllerTransitionOptions, completion: Option<&DynBlock<dyn Fn()>>, )
block2
only.pub fn parentViewController(&self) -> Option<Retained<NSViewController>>
pub fn childViewControllers(&self) -> Retained<NSArray<NSViewController>>
Sourcepub fn setChildViewControllers(
&self,
child_view_controllers: &NSArray<NSViewController>,
)
pub fn setChildViewControllers( &self, child_view_controllers: &NSArray<NSViewController>, )
Setter for childViewControllers
.
This is copied when set.
pub fn addChildViewController(&self, child_view_controller: &NSViewController)
pub fn removeFromParentViewController(&self)
pub fn insertChildViewController_atIndex( &self, child_view_controller: &NSViewController, index: NSInteger, )
pub fn removeChildViewControllerAtIndex(&self, index: NSInteger)
pub fn preferredContentSizeDidChangeForViewController( &self, view_controller: &NSViewController, )
pub fn viewWillTransitionToSize(&self, new_size: NSSize)
pub fn storyboard(&self) -> Option<Retained<NSStoryboard>>
NSStoryboard
only.pub fn extensionContext(&self) -> Option<Retained<NSExtensionContext>>
pub fn sourceItemView(&self) -> Option<Retained<NSView>>
NSView
only.Sourcepub fn setSourceItemView(&self, source_item_view: Option<&NSView>)
Available on crate feature NSView
only.
pub fn setSourceItemView(&self, source_item_view: Option<&NSView>)
NSView
only.Setter for sourceItemView
.
pub fn preferredScreenOrigin(&self) -> NSPoint
Sourcepub fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint)
pub fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint)
Setter for preferredScreenOrigin
.
pub fn preferredMinimumSize(&self) -> NSSize
pub fn preferredMaximumSize(&self) -> NSSize
Methods from Deref<Target = NSResponder>§
pub fn interfaceStyle(&self) -> NSInterfaceStyle
NSInterfaceStyle
only.pub fn setInterfaceStyle(&self, interface_style: NSInterfaceStyle)
NSInterfaceStyle
only.Sourcepub unsafe fn nextResponder(&self) -> Option<Retained<NSResponder>>
pub unsafe fn nextResponder(&self) -> Option<Retained<NSResponder>>
§Safety
This is not retained internally, you must ensure the object is still alive.
Sourcepub unsafe fn setNextResponder(&self, next_responder: Option<&NSResponder>)
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.
Sourcepub unsafe fn tryToPerform_with(
&self,
action: Sel,
object: Option<&AnyObject>,
) -> bool
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.
pub fn performKeyEquivalent(&self, event: &NSEvent) -> bool
NSEvent
only.pub fn validRequestorForSendType_returnType( &self, send_type: Option<&NSPasteboardType>, return_type: Option<&NSPasteboardType>, ) -> Option<Retained<AnyObject>>
NSPasteboard
only.pub fn mouseDown(&self, event: &NSEvent)
NSEvent
only.pub fn rightMouseDown(&self, event: &NSEvent)
NSEvent
only.pub fn otherMouseDown(&self, event: &NSEvent)
NSEvent
only.pub fn mouseUp(&self, event: &NSEvent)
NSEvent
only.pub fn rightMouseUp(&self, event: &NSEvent)
NSEvent
only.pub fn otherMouseUp(&self, event: &NSEvent)
NSEvent
only.pub fn mouseMoved(&self, event: &NSEvent)
NSEvent
only.pub fn mouseDragged(&self, event: &NSEvent)
NSEvent
only.pub fn mouseCancelled(&self, event: &NSEvent)
NSEvent
only.pub fn scrollWheel(&self, event: &NSEvent)
NSEvent
only.pub fn rightMouseDragged(&self, event: &NSEvent)
NSEvent
only.pub fn otherMouseDragged(&self, event: &NSEvent)
NSEvent
only.pub fn mouseEntered(&self, event: &NSEvent)
NSEvent
only.pub fn mouseExited(&self, event: &NSEvent)
NSEvent
only.pub fn keyDown(&self, event: &NSEvent)
NSEvent
only.pub fn keyUp(&self, event: &NSEvent)
NSEvent
only.pub fn flagsChanged(&self, event: &NSEvent)
NSEvent
only.pub fn tabletPoint(&self, event: &NSEvent)
NSEvent
only.pub fn tabletProximity(&self, event: &NSEvent)
NSEvent
only.pub fn cursorUpdate(&self, event: &NSEvent)
NSEvent
only.pub fn magnifyWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn rotateWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn swipeWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn beginGestureWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn endGestureWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn smartMagnifyWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn changeModeWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn touchesBeganWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn touchesMovedWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn touchesEndedWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn touchesCancelledWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn quickLookWithEvent(&self, event: &NSEvent)
NSEvent
only.pub fn pressureChangeWithEvent(&self, event: &NSEvent)
NSEvent
only.Sourcepub fn contextMenuKeyDown(&self, event: &NSEvent)
Available on crate feature NSEvent
only.
pub fn contextMenuKeyDown(&self, event: &NSEvent)
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:
Sourcepub unsafe fn noResponderFor(&self, event_selector: Sel)
pub unsafe fn noResponderFor(&self, event_selector: Sel)
§Safety
event_selector
must be a valid selector.
pub fn acceptsFirstResponder(&self) -> bool
pub fn becomeFirstResponder(&self) -> bool
pub fn resignFirstResponder(&self) -> bool
pub fn interpretKeyEvents(&self, event_array: &NSArray<NSEvent>)
NSEvent
only.pub fn flushBufferedKeyEvents(&self)
NSMenu
only.Sourcepub unsafe fn setMenu(&self, menu: Option<&NSMenu>)
Available on crate feature NSMenu
only.
pub unsafe fn setMenu(&self, menu: Option<&NSMenu>)
NSMenu
only.Setter for menu
.
Sourcepub unsafe fn showContextHelp(&self, sender: Option<&AnyObject>)
pub unsafe fn showContextHelp(&self, sender: Option<&AnyObject>)
§Safety
sender
should be of the correct type.
pub fn helpRequested(&self, event_ptr: &NSEvent)
NSEvent
only.pub fn shouldBeTreatedAsInkEvent(&self, event: &NSEvent) -> bool
NSEvent
only.pub fn wantsScrollEventsForSwipeTrackingOnAxis( &self, axis: NSEventGestureAxis, ) -> bool
NSEvent
only.pub fn wantsForwardedScrollEventsForAxis( &self, axis: NSEventGestureAxis, ) -> bool
NSEvent
only.Sourcepub unsafe fn supplementalTargetForAction_sender(
&self,
action: Sel,
sender: Option<&AnyObject>,
) -> Option<Retained<AnyObject>>
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.
pub fn undoManager(&self) -> Option<Retained<NSUndoManager>>
pub fn validateProposedFirstResponder_forEvent( &self, responder: &NSResponder, event: Option<&NSEvent>, ) -> bool
NSEvent
only.Sourcepub 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.
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, )
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.
pub fn presentError(&self, error: &NSError) -> bool
pub fn willPresentError(&self, error: &NSError) -> Retained<NSError>
Sourcepub unsafe fn performTextFinderAction(&self, sender: Option<&AnyObject>)
pub unsafe fn performTextFinderAction(&self, sender: Option<&AnyObject>)
§Safety
sender
should be of the correct type.
Sourcepub unsafe fn newWindowForTab(&self, sender: Option<&AnyObject>)
pub unsafe fn newWindowForTab(&self, sender: Option<&AnyObject>)
§Safety
sender
should be of the correct type.
Sourcepub unsafe fn showWritingTools(&self, sender: Option<&AnyObject>)
pub unsafe fn showWritingTools(&self, sender: Option<&AnyObject>)
§Safety
sender
should be of the correct type.
pub fn performMnemonic(&self, string: &NSString) -> bool
pub fn touchBar(&self) -> Option<Retained<NSTouchBar>>
NSTouchBar
only.Sourcepub fn setTouchBar(&self, touch_bar: Option<&NSTouchBar>)
Available on crate feature NSTouchBar
only.
pub fn setTouchBar(&self, touch_bar: Option<&NSTouchBar>)
NSTouchBar
only.Setter for touchBar
.
pub fn makeTouchBar(&self) -> Option<Retained<NSTouchBar>>
NSTouchBar
only.pub fn userActivity(&self) -> Option<Retained<NSUserActivity>>
NSUserActivity
only.Sourcepub fn setUserActivity(&self, user_activity: Option<&NSUserActivity>)
Available on crate feature NSUserActivity
only.
pub fn setUserActivity(&self, user_activity: Option<&NSUserActivity>)
NSUserActivity
only.Setter for userActivity
.
pub fn updateUserActivityState(&self, user_activity: &NSUserActivity)
NSUserActivity
only.Sourcepub unsafe fn encodeRestorableStateWithCoder(&self, coder: &NSCoder)
Available on crate feature NSWindowRestoration
only.
pub unsafe fn encodeRestorableStateWithCoder(&self, coder: &NSCoder)
NSWindowRestoration
only.§Safety
coder
possibly has further requirements.
Sourcepub unsafe fn encodeRestorableStateWithCoder_backgroundQueue(
&self,
coder: &NSCoder,
queue: &NSOperationQueue,
)
Available on crate feature NSWindowRestoration
only.
pub unsafe fn encodeRestorableStateWithCoder_backgroundQueue( &self, coder: &NSCoder, queue: &NSOperationQueue, )
NSWindowRestoration
only.§Safety
coder
possibly has further requirements.queue
possibly has additional threading requirements.
Sourcepub unsafe fn restoreStateWithCoder(&self, coder: &NSCoder)
Available on crate feature NSWindowRestoration
only.
pub unsafe fn restoreStateWithCoder(&self, coder: &NSCoder)
NSWindowRestoration
only.§Safety
coder
possibly has further requirements.
pub fn invalidateRestorableState(&self)
NSWindowRestoration
only.Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
Available on crate feature NSAccessibilityConstants
only.
pub fn class(&self) -> &'static AnyClass
NSAccessibilityConstants
only.Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init
/new
methods).
§Example
Check that an instance of NSObject
has the precise class NSObject
.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load
instead.Available on crate feature NSAccessibilityConstants
only.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load
instead.NSAccessibilityConstants
only.Use Ivar::load
instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T
.
See Ivar::load_ptr
for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Available on crate feature NSAccessibilityConstants
only.
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
NSAccessibilityConstants
only.Attempt to downcast the object to a class of type T
.
This is the reference-variant. Use Retained::downcast
if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString
.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString
to a NSMutableString
,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass:
for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject
.
§Panics
This works internally by calling isKindOfClass:
. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject
and
NSProxy
implement this method.
§Examples
Cast an NSString
back and forth from NSObject
.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();
Try (and fail) to cast an NSObject
to an NSString
.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());
Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();
This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}
Trait Implementations§
Source§impl AsRef<AnyObject> for NSSplitViewController
impl AsRef<AnyObject> for NSSplitViewController
Source§impl AsRef<NSObject> for NSSplitViewController
impl AsRef<NSObject> for NSSplitViewController
Source§impl AsRef<NSResponder> for NSSplitViewController
impl AsRef<NSResponder> for NSSplitViewController
Source§fn as_ref(&self) -> &NSResponder
fn as_ref(&self) -> &NSResponder
Source§impl AsRef<NSViewController> for NSSplitViewController
impl AsRef<NSViewController> for NSSplitViewController
Source§fn as_ref(&self) -> &NSViewController
fn as_ref(&self) -> &NSViewController
Source§impl Borrow<AnyObject> for NSSplitViewController
impl Borrow<AnyObject> for NSSplitViewController
Source§impl Borrow<NSObject> for NSSplitViewController
impl Borrow<NSObject> for NSSplitViewController
Source§impl Borrow<NSResponder> for NSSplitViewController
impl Borrow<NSResponder> for NSSplitViewController
Source§fn borrow(&self) -> &NSResponder
fn borrow(&self) -> &NSResponder
Source§impl Borrow<NSViewController> for NSSplitViewController
impl Borrow<NSViewController> for NSSplitViewController
Source§fn borrow(&self) -> &NSViewController
fn borrow(&self) -> &NSViewController
Source§impl ClassType for NSSplitViewController
impl ClassType for NSSplitViewController
Source§const NAME: &'static str = "NSSplitViewController"
const NAME: &'static str = "NSSplitViewController"
Source§type Super = NSViewController
type Super = NSViewController
Source§type ThreadKind = <<NSSplitViewController as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<NSSplitViewController as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for NSSplitViewController
impl Debug for NSSplitViewController
Source§impl Deref for NSSplitViewController
impl Deref for NSSplitViewController
Source§impl Hash for NSSplitViewController
impl Hash for NSSplitViewController
Source§impl Message for NSSplitViewController
impl Message for NSSplitViewController
Source§impl NSCoding for NSSplitViewController
impl NSCoding for NSSplitViewController
Source§impl NSEditor for NSSplitViewController
impl NSEditor for NSSplitViewController
Source§fn discardEditing(&self)
fn discardEditing(&self)
NSKeyValueBinding
only.Source§fn commitEditing(&self) -> bool
fn commitEditing(&self) -> bool
NSKeyValueBinding
only.Source§impl NSObjectProtocol for NSSplitViewController
impl NSObjectProtocol for NSSplitViewController
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass
directly, or cast your objects with AnyObject::downcast_ref
Source§fn isMemberOfClass(&self, cls: &AnyClass) -> bool
fn isMemberOfClass(&self, cls: &AnyClass) -> bool
Source§fn respondsToSelector(&self, aSelector: Sel) -> bool
fn respondsToSelector(&self, aSelector: Sel) -> bool
Source§fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
Source§fn debugDescription(&self) -> Retained<NSObject>
fn debugDescription(&self) -> Retained<NSObject>
Source§impl NSSeguePerforming for NSSplitViewController
impl NSSeguePerforming for NSSplitViewController
Source§unsafe fn prepareForSegue_sender(
&self,
segue: &NSStoryboardSegue,
sender: Option<&AnyObject>,
)
unsafe fn prepareForSegue_sender( &self, segue: &NSStoryboardSegue, sender: Option<&AnyObject>, )
NSStoryboardSegue
only.Source§unsafe fn performSegueWithIdentifier_sender(
&self,
identifier: &NSStoryboardSegueIdentifier,
sender: Option<&AnyObject>,
)
unsafe fn performSegueWithIdentifier_sender( &self, identifier: &NSStoryboardSegueIdentifier, sender: Option<&AnyObject>, )
NSStoryboardSegue
only.Source§unsafe fn shouldPerformSegueWithIdentifier_sender(
&self,
identifier: &NSStoryboardSegueIdentifier,
sender: Option<&AnyObject>,
) -> bool
unsafe fn shouldPerformSegueWithIdentifier_sender( &self, identifier: &NSStoryboardSegueIdentifier, sender: Option<&AnyObject>, ) -> bool
NSStoryboardSegue
only.Source§impl NSSplitViewDelegate for NSSplitViewController
impl NSSplitViewDelegate for NSSplitViewController
Source§fn splitView_canCollapseSubview(
&self,
split_view: &NSSplitView,
subview: &NSView,
) -> bool
fn splitView_canCollapseSubview( &self, split_view: &NSSplitView, subview: &NSView, ) -> bool
NSResponder
and NSView
and NSSplitView
only.Source§fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex(
&self,
split_view: &NSSplitView,
subview: &NSView,
divider_index: NSInteger,
) -> bool
fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex( &self, split_view: &NSSplitView, subview: &NSView, divider_index: NSInteger, ) -> bool
NSResponder
and NSView
and NSSplitView
only.Source§fn splitView_constrainMinCoordinate_ofSubviewAt(
&self,
split_view: &NSSplitView,
proposed_minimum_position: CGFloat,
divider_index: NSInteger,
) -> CGFloat
fn splitView_constrainMinCoordinate_ofSubviewAt( &self, split_view: &NSSplitView, proposed_minimum_position: CGFloat, divider_index: NSInteger, ) -> CGFloat
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
fn splitView_constrainMaxCoordinate_ofSubviewAt( &self, split_view: &NSSplitView, proposed_maximum_position: CGFloat, divider_index: NSInteger, ) -> CGFloat
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
fn splitView_constrainSplitPosition_ofSubviewAt( &self, split_view: &NSSplitView, proposed_position: CGFloat, divider_index: NSInteger, ) -> CGFloat
NSResponder
and NSView
and objc2-core-foundation
and NSSplitView
only.Source§fn splitView_resizeSubviewsWithOldSize(
&self,
split_view: &NSSplitView,
old_size: NSSize,
)
fn splitView_resizeSubviewsWithOldSize( &self, split_view: &NSSplitView, old_size: NSSize, )
NSResponder
and NSView
and NSSplitView
only.Source§fn splitView_shouldAdjustSizeOfSubview(
&self,
split_view: &NSSplitView,
view: &NSView,
) -> bool
fn splitView_shouldAdjustSizeOfSubview( &self, split_view: &NSSplitView, view: &NSView, ) -> bool
NSResponder
and NSView
and NSSplitView
only.Source§fn splitView_shouldHideDividerAtIndex(
&self,
split_view: &NSSplitView,
divider_index: NSInteger,
) -> bool
fn splitView_shouldHideDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> bool
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
fn splitView_effectiveRect_forDrawnRect_ofDividerAtIndex( &self, split_view: &NSSplitView, proposed_effective_rect: NSRect, drawn_rect: NSRect, divider_index: NSInteger, ) -> NSRect
NSResponder
and NSView
and NSSplitView
only.Source§fn splitView_additionalEffectiveRectOfDividerAtIndex(
&self,
split_view: &NSSplitView,
divider_index: NSInteger,
) -> NSRect
fn splitView_additionalEffectiveRectOfDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> NSRect
NSResponder
and NSView
and NSSplitView
only.Source§fn splitViewWillResizeSubviews(&self, notification: &NSNotification)
fn splitViewWillResizeSubviews(&self, notification: &NSNotification)
NSSplitView
only.Source§fn splitViewDidResizeSubviews(&self, notification: &NSNotification)
fn splitViewDidResizeSubviews(&self, notification: &NSNotification)
NSSplitView
only.Source§impl NSUserInterfaceItemIdentification for NSSplitViewController
impl NSUserInterfaceItemIdentification for NSSplitViewController
Source§fn identifier(&self) -> Option<Retained<NSUserInterfaceItemIdentifier>>
fn identifier(&self) -> Option<Retained<NSUserInterfaceItemIdentifier>>
NSUserInterfaceItemIdentification
only.Source§fn setIdentifier(&self, identifier: Option<&NSUserInterfaceItemIdentifier>)
fn setIdentifier(&self, identifier: Option<&NSUserInterfaceItemIdentifier>)
NSUserInterfaceItemIdentification
only.identifier
. Read moreSource§impl NSUserInterfaceValidations for NSSplitViewController
impl NSUserInterfaceValidations for NSSplitViewController
Source§fn validateUserInterfaceItem(
&self,
item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>,
) -> bool
fn validateUserInterfaceItem( &self, item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>, ) -> bool
NSUserInterfaceValidation
only.Source§impl PartialEq for NSSplitViewController
impl PartialEq for NSSplitViewController
Source§impl RefEncode for NSSplitViewController
impl RefEncode for NSSplitViewController
Source§const ENCODING_REF: Encoding = <NSViewController as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <NSViewController as ::objc2::RefEncode>::ENCODING_REF
impl DowncastTarget for NSSplitViewController
impl Eq for NSSplitViewController
Auto Trait Implementations§
impl !Freeze for NSSplitViewController
impl !RefUnwindSafe for NSSplitViewController
impl !Send for NSSplitViewController
impl !Sync for NSSplitViewController
impl !Unpin for NSSplitViewController
impl !UnwindSafe for NSSplitViewController
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<'a, T> MainThreadOnly for T
impl<'a, T> MainThreadOnly for T
Source§fn mtm(&self) -> MainThreadMarker
fn mtm(&self) -> MainThreadMarker
MainThreadMarker
from the main-thread-only object. Read more