#[repr(C)]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 unsafe fn splitView(&self) -> Retained<NSSplitView>
Available on crate features NSSplitView
and NSView
only.
pub unsafe 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 unsafe fn setSplitView(&self, split_view: &NSSplitView)
Available on crate features NSSplitView
and NSView
only.
pub unsafe fn setSplitView(&self, split_view: &NSSplitView)
NSSplitView
and NSView
only.Setter for splitView
.
Sourcepub unsafe fn splitViewItems(&self) -> Retained<NSArray<NSSplitViewItem>>
Available on crate feature NSSplitViewItem
only.
pub unsafe 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 unsafe fn setSplitViewItems(
&self,
split_view_items: &NSArray<NSSplitViewItem>,
)
Available on crate feature NSSplitViewItem
only.
pub unsafe fn setSplitViewItems( &self, split_view_items: &NSArray<NSSplitViewItem>, )
NSSplitViewItem
only.Setter for splitViewItems
.
Sourcepub unsafe fn addSplitViewItem(&self, split_view_item: &NSSplitViewItem)
Available on crate feature NSSplitViewItem
only.
pub unsafe 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 unsafe fn insertSplitViewItem_atIndex(
&self,
split_view_item: &NSSplitViewItem,
index: NSInteger,
)
Available on crate feature NSSplitViewItem
only.
pub unsafe 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 unsafe fn removeSplitViewItem(&self, split_view_item: &NSSplitViewItem)
Available on crate feature NSSplitViewItem
only.
pub unsafe 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 unsafe fn splitViewItemForViewController(
&self,
view_controller: &NSViewController,
) -> Option<Retained<NSSplitViewItem>>
Available on crate feature NSSplitViewItem
only.
pub unsafe 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 unsafe fn minimumThicknessForInlineSidebars(&self) -> CGFloat
Available on crate feature objc2-core-foundation
only.
pub unsafe 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 unsafe fn setMinimumThicknessForInlineSidebars(
&self,
minimum_thickness_for_inline_sidebars: CGFloat,
)
Available on crate feature objc2-core-foundation
only.
pub unsafe fn setMinimumThicknessForInlineSidebars( &self, minimum_thickness_for_inline_sidebars: CGFloat, )
objc2-core-foundation
only.Setter for minimumThicknessForInlineSidebars
.
Sourcepub unsafe fn validateUserInterfaceItem(
&self,
item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>,
) -> bool
Available on crate feature NSUserInterfaceValidation
only.
pub unsafe 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 unsafe fn viewDidLoad(&self)
pub unsafe fn splitView_canCollapseSubview( &self, split_view: &NSSplitView, subview: &NSView, ) -> bool
NSSplitView
and NSView
only.pub unsafe fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex( &self, split_view: &NSSplitView, subview: &NSView, divider_index: NSInteger, ) -> bool
NSSplitView
and NSView
only.pub unsafe fn splitView_shouldHideDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> bool
NSSplitView
and NSView
only.pub unsafe 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 unsafe 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
.
pub unsafe fn initWithNibName_bundle( this: Allocated<Self>, nib_name_or_nil: Option<&NSNibName>, nib_bundle_or_nil: Option<&NSBundle>, ) -> Retained<Self>
NSNib
only.pub unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>
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 unsafe 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.
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.
Methods from Deref<Target = NSViewController>§
pub unsafe fn nibName(&self) -> Option<Retained<NSNibName>>
NSNib
only.pub unsafe fn nibBundle(&self) -> Option<Retained<NSBundle>>
pub unsafe fn representedObject(&self) -> Option<Retained<AnyObject>>
Sourcepub unsafe fn setRepresentedObject(
&self,
represented_object: Option<&AnyObject>,
)
pub unsafe fn setRepresentedObject( &self, represented_object: Option<&AnyObject>, )
Setter for representedObject
.
pub unsafe fn title(&self) -> Option<Retained<NSString>>
pub unsafe fn view(&self) -> Retained<NSView>
NSView
only.Sourcepub unsafe fn setView(&self, view: &NSView)
Available on crate feature NSView
only.
pub unsafe fn setView(&self, view: &NSView)
NSView
only.Setter for view
.
pub unsafe fn viewIfLoaded(&self) -> Option<Retained<NSView>>
NSView
only.pub unsafe fn loadView(&self)
pub unsafe fn loadViewIfNeeded(&self)
pub unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo( &self, delegate: Option<&AnyObject>, did_commit_selector: Option<Sel>, context_info: *mut c_void, )
pub unsafe fn commitEditing(&self) -> bool
pub unsafe fn discardEditing(&self)
pub unsafe fn viewDidLoad(&self)
pub unsafe fn isViewLoaded(&self) -> bool
pub unsafe fn viewWillAppear(&self)
pub unsafe fn viewDidAppear(&self)
pub unsafe fn viewWillDisappear(&self)
pub unsafe fn viewDidDisappear(&self)
pub unsafe fn preferredContentSize(&self) -> NSSize
Sourcepub unsafe fn setPreferredContentSize(&self, preferred_content_size: NSSize)
pub unsafe fn setPreferredContentSize(&self, preferred_content_size: NSSize)
Setter for preferredContentSize
.
pub unsafe fn updateViewConstraints(&self)
pub unsafe fn viewWillLayout(&self)
pub unsafe fn viewDidLayout(&self)
pub unsafe fn presentViewController_animator( &self, view_controller: &NSViewController, animator: &ProtocolObject<dyn NSViewControllerPresentationAnimator>, )
pub unsafe fn dismissViewController(&self, view_controller: &NSViewController)
pub unsafe fn dismissController(&self, sender: Option<&AnyObject>)
pub unsafe fn presentedViewControllers( &self, ) -> Option<Retained<NSArray<NSViewController>>>
pub unsafe fn presentingViewController( &self, ) -> Option<Retained<NSViewController>>
pub unsafe fn presentViewControllerAsSheet( &self, view_controller: &NSViewController, )
pub unsafe fn presentViewControllerAsModalWindow( &self, view_controller: &NSViewController, )
pub unsafe 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 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, )
NSPopover
and NSView
only.pub unsafe fn transitionFromViewController_toViewController_options_completionHandler( &self, from_view_controller: &NSViewController, to_view_controller: &NSViewController, options: NSViewControllerTransitionOptions, completion: Option<&DynBlock<dyn Fn()>>, )
block2
only.pub unsafe fn parentViewController(&self) -> Option<Retained<NSViewController>>
pub unsafe fn childViewControllers(&self) -> Retained<NSArray<NSViewController>>
Sourcepub unsafe fn setChildViewControllers(
&self,
child_view_controllers: &NSArray<NSViewController>,
)
pub unsafe fn setChildViewControllers( &self, child_view_controllers: &NSArray<NSViewController>, )
Setter for childViewControllers
.
pub unsafe fn addChildViewController( &self, child_view_controller: &NSViewController, )
pub unsafe fn removeFromParentViewController(&self)
pub unsafe fn insertChildViewController_atIndex( &self, child_view_controller: &NSViewController, index: NSInteger, )
pub unsafe fn removeChildViewControllerAtIndex(&self, index: NSInteger)
pub unsafe fn preferredContentSizeDidChangeForViewController( &self, view_controller: &NSViewController, )
pub unsafe fn viewWillTransitionToSize(&self, new_size: NSSize)
pub unsafe fn storyboard(&self) -> Option<Retained<NSStoryboard>>
NSStoryboard
only.pub unsafe fn extensionContext(&self) -> Option<Retained<NSExtensionContext>>
pub unsafe fn sourceItemView(&self) -> Option<Retained<NSView>>
NSView
only.Sourcepub unsafe fn setSourceItemView(&self, source_item_view: Option<&NSView>)
Available on crate feature NSView
only.
pub unsafe fn setSourceItemView(&self, source_item_view: Option<&NSView>)
NSView
only.Setter for sourceItemView
.
pub unsafe fn preferredScreenOrigin(&self) -> NSPoint
Sourcepub unsafe fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint)
pub unsafe fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint)
Setter for preferredScreenOrigin
.
pub unsafe fn preferredMinimumSize(&self) -> NSSize
pub unsafe fn preferredMaximumSize(&self) -> NSSize
Methods from Deref<Target = NSResponder>§
pub unsafe fn interfaceStyle(&self) -> NSInterfaceStyle
NSInterfaceStyle
only.pub unsafe fn setInterfaceStyle(&self, interface_style: NSInterfaceStyle)
NSInterfaceStyle
only.pub unsafe fn nextResponder(&self) -> Option<Retained<NSResponder>>
Sourcepub unsafe fn setNextResponder(&self, next_responder: Option<&NSResponder>)
pub unsafe fn setNextResponder(&self, next_responder: Option<&NSResponder>)
Setter for nextResponder
.
pub unsafe fn tryToPerform_with( &self, action: Sel, object: Option<&AnyObject>, ) -> bool
pub unsafe fn performKeyEquivalent(&self, event: &NSEvent) -> bool
NSEvent
only.pub unsafe fn validRequestorForSendType_returnType( &self, send_type: Option<&NSPasteboardType>, return_type: Option<&NSPasteboardType>, ) -> Option<Retained<AnyObject>>
NSPasteboard
only.pub unsafe fn mouseDown(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn rightMouseDown(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn otherMouseDown(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn mouseUp(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn rightMouseUp(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn otherMouseUp(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn mouseMoved(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn mouseDragged(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn scrollWheel(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn rightMouseDragged(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn otherMouseDragged(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn mouseEntered(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn mouseExited(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn keyDown(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn keyUp(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn flagsChanged(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn tabletPoint(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn tabletProximity(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn cursorUpdate(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn magnifyWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn rotateWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn swipeWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn beginGestureWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn endGestureWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn smartMagnifyWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn changeModeWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn touchesBeganWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn touchesMovedWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn touchesEndedWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn touchesCancelledWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn quickLookWithEvent(&self, event: &NSEvent)
NSEvent
only.pub unsafe fn pressureChangeWithEvent(&self, event: &NSEvent)
NSEvent
only.Sourcepub unsafe fn contextMenuKeyDown(&self, event: &NSEvent)
Available on crate feature NSEvent
only.
pub unsafe 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:
pub unsafe fn noResponderFor(&self, event_selector: Sel)
pub unsafe fn acceptsFirstResponder(&self) -> bool
pub unsafe fn becomeFirstResponder(&self) -> bool
pub unsafe fn resignFirstResponder(&self) -> bool
pub unsafe fn interpretKeyEvents(&self, event_array: &NSArray<NSEvent>)
NSEvent
only.pub unsafe 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
.
pub unsafe fn showContextHelp(&self, sender: Option<&AnyObject>)
pub unsafe fn helpRequested(&self, event_ptr: &NSEvent)
NSEvent
only.pub unsafe fn shouldBeTreatedAsInkEvent(&self, event: &NSEvent) -> bool
NSEvent
only.pub unsafe fn wantsScrollEventsForSwipeTrackingOnAxis( &self, axis: NSEventGestureAxis, ) -> bool
NSEvent
only.pub unsafe fn wantsForwardedScrollEventsForAxis( &self, axis: NSEventGestureAxis, ) -> bool
NSEvent
only.pub unsafe fn supplementalTargetForAction_sender( &self, action: Sel, sender: Option<&AnyObject>, ) -> Option<Retained<AnyObject>>
pub unsafe fn undoManager(&self) -> Option<Retained<NSUndoManager>>
pub unsafe fn validateProposedFirstResponder_forEvent( &self, responder: &NSResponder, event: Option<&NSEvent>, ) -> bool
NSEvent
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.pub unsafe fn presentError(&self, error: &NSError) -> bool
pub unsafe fn willPresentError(&self, error: &NSError) -> Retained<NSError>
pub unsafe fn performTextFinderAction(&self, sender: Option<&AnyObject>)
pub unsafe fn newWindowForTab(&self, sender: Option<&AnyObject>)
pub unsafe fn showWritingTools(&self, sender: Option<&AnyObject>)
pub unsafe fn performMnemonic(&self, string: &NSString) -> bool
pub unsafe fn touchBar(&self) -> Option<Retained<NSTouchBar>>
NSTouchBar
only.Sourcepub unsafe fn setTouchBar(&self, touch_bar: Option<&NSTouchBar>)
Available on crate feature NSTouchBar
only.
pub unsafe fn setTouchBar(&self, touch_bar: Option<&NSTouchBar>)
NSTouchBar
only.Setter for touchBar
.
pub unsafe fn makeTouchBar(&self) -> Option<Retained<NSTouchBar>>
NSTouchBar
only.pub unsafe fn userActivity(&self) -> Option<Retained<NSUserActivity>>
NSUserActivity
only.Sourcepub unsafe fn setUserActivity(&self, user_activity: Option<&NSUserActivity>)
Available on crate feature NSUserActivity
only.
pub unsafe fn setUserActivity(&self, user_activity: Option<&NSUserActivity>)
NSUserActivity
only.Setter for userActivity
.
pub unsafe fn updateUserActivityState(&self, user_activity: &NSUserActivity)
NSUserActivity
only.pub unsafe fn encodeRestorableStateWithCoder(&self, coder: &NSCoder)
NSWindowRestoration
only.pub unsafe fn encodeRestorableStateWithCoder_backgroundQueue( &self, coder: &NSCoder, queue: &NSOperationQueue, )
NSWindowRestoration
only.pub unsafe fn restoreStateWithCoder(&self, coder: &NSCoder)
NSWindowRestoration
only.pub unsafe 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§unsafe fn discardEditing(&self)
unsafe fn discardEditing(&self)
NSKeyValueBinding
only.Source§unsafe fn commitEditing(&self) -> bool
unsafe 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§unsafe fn splitView_canCollapseSubview(
&self,
split_view: &NSSplitView,
subview: &NSView,
) -> bool
unsafe fn splitView_canCollapseSubview( &self, split_view: &NSSplitView, subview: &NSView, ) -> bool
NSResponder
and NSView
and NSSplitView
only.Source§unsafe fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex(
&self,
split_view: &NSSplitView,
subview: &NSView,
divider_index: NSInteger,
) -> bool
unsafe fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex( &self, split_view: &NSSplitView, subview: &NSView, divider_index: NSInteger, ) -> bool
NSResponder
and NSView
and NSSplitView
only.Source§unsafe fn splitView_constrainMinCoordinate_ofSubviewAt(
&self,
split_view: &NSSplitView,
proposed_minimum_position: CGFloat,
divider_index: NSInteger,
) -> CGFloat
unsafe 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§unsafe fn splitView_constrainMaxCoordinate_ofSubviewAt(
&self,
split_view: &NSSplitView,
proposed_maximum_position: CGFloat,
divider_index: NSInteger,
) -> CGFloat
unsafe 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§unsafe fn splitView_constrainSplitPosition_ofSubviewAt(
&self,
split_view: &NSSplitView,
proposed_position: CGFloat,
divider_index: NSInteger,
) -> CGFloat
unsafe 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§unsafe fn splitView_resizeSubviewsWithOldSize(
&self,
split_view: &NSSplitView,
old_size: NSSize,
)
unsafe fn splitView_resizeSubviewsWithOldSize( &self, split_view: &NSSplitView, old_size: NSSize, )
NSResponder
and NSView
and NSSplitView
only.Source§unsafe fn splitView_shouldAdjustSizeOfSubview(
&self,
split_view: &NSSplitView,
view: &NSView,
) -> bool
unsafe fn splitView_shouldAdjustSizeOfSubview( &self, split_view: &NSSplitView, view: &NSView, ) -> bool
NSResponder
and NSView
and NSSplitView
only.Source§unsafe fn splitView_shouldHideDividerAtIndex(
&self,
split_view: &NSSplitView,
divider_index: NSInteger,
) -> bool
unsafe fn splitView_shouldHideDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> bool
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
unsafe 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§unsafe fn splitView_additionalEffectiveRectOfDividerAtIndex(
&self,
split_view: &NSSplitView,
divider_index: NSInteger,
) -> NSRect
unsafe fn splitView_additionalEffectiveRectOfDividerAtIndex( &self, split_view: &NSSplitView, divider_index: NSInteger, ) -> NSRect
NSResponder
and NSView
and NSSplitView
only.Source§unsafe fn splitViewWillResizeSubviews(&self, notification: &NSNotification)
unsafe fn splitViewWillResizeSubviews(&self, notification: &NSNotification)
NSSplitView
only.Source§unsafe fn splitViewDidResizeSubviews(&self, notification: &NSNotification)
unsafe fn splitViewDidResizeSubviews(&self, notification: &NSNotification)
NSSplitView
only.Source§impl NSUserInterfaceItemIdentification for NSSplitViewController
impl NSUserInterfaceItemIdentification for NSSplitViewController
Source§unsafe fn identifier(&self) -> Option<Retained<NSUserInterfaceItemIdentifier>>
unsafe fn identifier(&self) -> Option<Retained<NSUserInterfaceItemIdentifier>>
NSUserInterfaceItemIdentification
only.Source§unsafe fn setIdentifier(
&self,
identifier: Option<&NSUserInterfaceItemIdentifier>,
)
unsafe fn setIdentifier( &self, identifier: Option<&NSUserInterfaceItemIdentifier>, )
NSUserInterfaceItemIdentification
only.identifier
.Source§impl NSUserInterfaceValidations for NSSplitViewController
impl NSUserInterfaceValidations for NSSplitViewController
Source§unsafe fn validateUserInterfaceItem(
&self,
item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>,
) -> bool
unsafe 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