pub struct SKCameraNode { /* private fields */ }SKCameraNode and crate feature SKNode and crate feature objc2-app-kit and macOS only.Expand description
A Camera node is a full fledged SKNode that can have actions and physics applied to it. It also uses the standard SKNode transform system so modifying the camera node’s position is how you translate the camera’s viewport. Applying a scale to the node would zoom the viewport in or out etc. As an added benefit you can now rotate the viewport by applying a zRotation to the camera node, just as you would with any other SKNode.
The camera viewport is centered on the camera’s position. It uses the scene’s frame and scale mode along with the node transforms to determine the size, origin and rotation of the viewport.
There are some convenience functions included for testing if nodes are contained within the camera viewport. It can be used to determine if objects are no longer visible on the display.
In order to use a camera; set it on the scene that contains the camera.
See: SKScene.camera
See also Apple’s documentation
Implementations§
Source§impl SKCameraNode
impl SKCameraNode
Sourcepub unsafe fn containsNode(&self, node: &SKNode) -> bool
pub unsafe fn containsNode(&self, node: &SKNode) -> bool
Checks if the node is contained inside the viewport of the camera. The camera and node must both be in the same scene and presented on a view in order to determine if the node is inside the camera viewport rectangle.
Returns: YES if the node is inside the viewport. NO if node is nil or the node is outside the viewport.
Sourcepub unsafe fn containedNodeSet(&self) -> Retained<NSSet<SKNode>>
pub unsafe fn containedNodeSet(&self) -> Retained<NSSet<SKNode>>
Returns the set of nodes in the same scene as the camera that are contained within its viewport.
Returns: the set of nodes contained
Source§impl SKCameraNode
Methods declared on superclass SKNode.
impl SKCameraNode
Methods declared on superclass SKNode.
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>
Sourcepub unsafe fn initWithCoder(
this: Allocated<Self>,
a_decoder: &NSCoder,
) -> Option<Retained<Self>>
pub unsafe fn initWithCoder( this: Allocated<Self>, a_decoder: &NSCoder, ) -> Option<Retained<Self>>
Support coding and decoding via NSKeyedArchiver.
§Safety
a_decoder possibly has further requirements.
pub unsafe fn node(mtm: MainThreadMarker) -> Retained<Self>
pub unsafe fn nodeWithFileNamed( filename: &NSString, mtm: MainThreadMarker, ) -> Option<Retained<Self>>
Source§impl SKCameraNode
Methods declared on superclass NSObject.
impl SKCameraNode
Methods declared on superclass NSObject.
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>
Methods from Deref<Target = SKNode>§
pub unsafe fn frame(&self) -> CGRect
objc2-core-foundation only.Sourcepub unsafe fn calculateAccumulatedFrame(&self) -> CGRect
Available on crate feature objc2-core-foundation only.
pub unsafe fn calculateAccumulatedFrame(&self) -> CGRect
objc2-core-foundation only.Calculates the bounding box including all child nodes in parents coordinate system.
Sourcepub unsafe fn position(&self) -> CGPoint
Available on crate feature objc2-core-foundation only.
pub unsafe fn position(&self) -> CGPoint
objc2-core-foundation only.The position of the node in the parent’s coordinate system
Sourcepub unsafe fn setPosition(&self, position: CGPoint)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setPosition(&self, position: CGPoint)
objc2-core-foundation only.Setter for position.
Sourcepub unsafe fn zPosition(&self) -> CGFloat
Available on crate feature objc2-core-foundation only.
pub unsafe fn zPosition(&self) -> CGFloat
objc2-core-foundation only.The z-order of the node (used for ordering). Negative z is “into” the screen, Positive z is “out” of the screen. A greater zPosition will sort in front of a lesser zPosition.
Sourcepub unsafe fn setZPosition(&self, z_position: CGFloat)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setZPosition(&self, z_position: CGFloat)
objc2-core-foundation only.Setter for zPosition.
Sourcepub unsafe fn zRotation(&self) -> CGFloat
Available on crate feature objc2-core-foundation only.
pub unsafe fn zRotation(&self) -> CGFloat
objc2-core-foundation only.The Euler rotation about the z axis (in radians)
Sourcepub unsafe fn setZRotation(&self, z_rotation: CGFloat)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setZRotation(&self, z_rotation: CGFloat)
objc2-core-foundation only.Setter for zRotation.
Sourcepub unsafe fn xScale(&self) -> CGFloat
Available on crate feature objc2-core-foundation only.
pub unsafe fn xScale(&self) -> CGFloat
objc2-core-foundation only.The scaling in the X axis
Sourcepub unsafe fn setXScale(&self, x_scale: CGFloat)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setXScale(&self, x_scale: CGFloat)
objc2-core-foundation only.Setter for xScale.
Sourcepub unsafe fn yScale(&self) -> CGFloat
Available on crate feature objc2-core-foundation only.
pub unsafe fn yScale(&self) -> CGFloat
objc2-core-foundation only.The scaling in the Y axis
Sourcepub unsafe fn setYScale(&self, y_scale: CGFloat)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setYScale(&self, y_scale: CGFloat)
objc2-core-foundation only.Setter for yScale.
Sourcepub unsafe fn speed(&self) -> CGFloat
Available on crate feature objc2-core-foundation only.
pub unsafe fn speed(&self) -> CGFloat
objc2-core-foundation only.The speed multiplier applied to all actions run on this node. Inherited by its children.
Sourcepub unsafe fn setSpeed(&self, speed: CGFloat)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setSpeed(&self, speed: CGFloat)
objc2-core-foundation only.Setter for speed.
Sourcepub unsafe fn alpha(&self) -> CGFloat
Available on crate feature objc2-core-foundation only.
pub unsafe fn alpha(&self) -> CGFloat
objc2-core-foundation only.Alpha of this node (multiplied by the output color to give the final result)
Sourcepub unsafe fn setAlpha(&self, alpha: CGFloat)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setAlpha(&self, alpha: CGFloat)
objc2-core-foundation only.Setter for alpha.
Sourcepub unsafe fn isPaused(&self) -> bool
pub unsafe fn isPaused(&self) -> bool
Controls whether or not the node’s actions is updated or paused.
Sourcepub unsafe fn isHidden(&self) -> bool
pub unsafe fn isHidden(&self) -> bool
Controls whether or not the node and its children are rendered.
Sourcepub unsafe fn isUserInteractionEnabled(&self) -> bool
pub unsafe fn isUserInteractionEnabled(&self) -> bool
Controls whether or not the node receives touch events
Sourcepub unsafe fn setUserInteractionEnabled(&self, user_interaction_enabled: bool)
pub unsafe fn setUserInteractionEnabled(&self, user_interaction_enabled: bool)
Setter for isUserInteractionEnabled.
Sourcepub unsafe fn focusBehavior(&self) -> SKNodeFocusBehavior
pub unsafe fn focusBehavior(&self) -> SKNodeFocusBehavior
Determines how this node participates in the focus system. The default is SKNodeFocusBehaviorNone.
Sourcepub unsafe fn setFocusBehavior(&self, focus_behavior: SKNodeFocusBehavior)
pub unsafe fn setFocusBehavior(&self, focus_behavior: SKNodeFocusBehavior)
Setter for focusBehavior.
Sourcepub unsafe fn parent(&self) -> Option<Retained<SKNode>>
pub unsafe fn parent(&self) -> Option<Retained<SKNode>>
The parent of the node.
If this is nil the node has not been added to another group and is thus the root node of its own graph.
Sourcepub unsafe fn name(&self) -> Option<Retained<NSString>>
pub unsafe fn name(&self) -> Option<Retained<NSString>>
The client assignable name.
In general, this should be unique among peers in the scene graph.
Sourcepub unsafe fn scene(&self) -> Option<Retained<SKScene>>
Available on crate features SKEffectNode and SKScene only.
pub unsafe fn scene(&self) -> Option<Retained<SKScene>>
SKEffectNode and SKScene only.The scene that the node is currently in.
Sourcepub unsafe fn physicsBody(&self) -> Option<Retained<SKPhysicsBody>>
Available on crate feature SKPhysicsBody only.
pub unsafe fn physicsBody(&self) -> Option<Retained<SKPhysicsBody>>
SKPhysicsBody only.Physics body attached to the node, with synchronized scale, rotation, and position
Sourcepub unsafe fn setPhysicsBody(&self, physics_body: Option<&SKPhysicsBody>)
Available on crate feature SKPhysicsBody only.
pub unsafe fn setPhysicsBody(&self, physics_body: Option<&SKPhysicsBody>)
SKPhysicsBody only.Setter for physicsBody.
Sourcepub unsafe fn userData(&self) -> Option<Retained<NSMutableDictionary>>
pub unsafe fn userData(&self) -> Option<Retained<NSMutableDictionary>>
An optional dictionary that can be used to store your own data in a node. Defaults to nil.
§Safety
The returned generic should be of the correct type.
Sourcepub unsafe fn setUserData(&self, user_data: Option<&NSMutableDictionary>)
pub unsafe fn setUserData(&self, user_data: Option<&NSMutableDictionary>)
Sourcepub unsafe fn reachConstraints(&self) -> Option<Retained<SKReachConstraints>>
Available on crate feature SKReachConstraints only.
pub unsafe fn reachConstraints(&self) -> Option<Retained<SKReachConstraints>>
SKReachConstraints only.Kinematic constraints, used in IK solving
Sourcepub unsafe fn setReachConstraints(
&self,
reach_constraints: Option<&SKReachConstraints>,
)
Available on crate feature SKReachConstraints only.
pub unsafe fn setReachConstraints( &self, reach_constraints: Option<&SKReachConstraints>, )
SKReachConstraints only.Setter for reachConstraints.
This is copied when set.
Sourcepub unsafe fn constraints(&self) -> Option<Retained<NSArray<SKConstraint>>>
Available on crate feature SKConstraint only.
pub unsafe fn constraints(&self) -> Option<Retained<NSArray<SKConstraint>>>
SKConstraint only.Optional array of SKConstraints Constraints are evaluated each frame after actions and physics. The node’s transform will be changed to satisfy the constraint.
Sourcepub unsafe fn setConstraints(&self, constraints: Option<&NSArray<SKConstraint>>)
Available on crate feature SKConstraint only.
pub unsafe fn setConstraints(&self, constraints: Option<&NSArray<SKConstraint>>)
SKConstraint only.Setter for constraints.
This is copied when set.
Sourcepub unsafe fn attributeValues(
&self,
) -> Retained<NSDictionary<NSString, SKAttributeValue>>
👎DeprecatedAvailable on crate feature SKAttribute only.
pub unsafe fn attributeValues( &self, ) -> Retained<NSDictionary<NSString, SKAttributeValue>>
SKAttribute only.Optional dictionary of SKAttributeValues Attributes can be used with custom SKShaders. DEPRECATED: Attributes are only available for node classes supporting SKShader (see SKSpriteNode etc.).
Sourcepub unsafe fn setAttributeValues(
&self,
attribute_values: &NSDictionary<NSString, SKAttributeValue>,
)
👎DeprecatedAvailable on crate feature SKAttribute only.
pub unsafe fn setAttributeValues( &self, attribute_values: &NSDictionary<NSString, SKAttributeValue>, )
SKAttribute only.Setter for attributeValues.
This is copied when set.
pub unsafe fn valueForAttributeNamed( &self, key: &NSString, ) -> Option<Retained<SKAttributeValue>>
SKAttribute only.pub unsafe fn setValue_forAttributeNamed( &self, value: &SKAttributeValue, key: &NSString, )
SKAttribute only.Sourcepub unsafe fn setScale(&self, scale: CGFloat)
Available on crate feature objc2-core-foundation only.
pub unsafe fn setScale(&self, scale: CGFloat)
objc2-core-foundation only.Sets both the x & y scale
Parameter scale: the uniform scale to set.
Sourcepub unsafe fn addChild(&self, node: &SKNode)
pub unsafe fn addChild(&self, node: &SKNode)
Adds a node as a child node of this node
The added node must not have a parent.
Parameter node: the child node to add.
pub unsafe fn insertChild_atIndex(&self, node: &SKNode, index: NSInteger)
pub unsafe fn removeChildrenInArray(&self, nodes: &NSArray<SKNode>)
pub unsafe fn removeAllChildren(&self)
pub unsafe fn removeFromParent(&self)
pub unsafe fn moveToParent(&self, parent: &SKNode)
pub unsafe fn childNodeWithName( &self, name: &NSString, ) -> Option<Retained<SKNode>>
pub unsafe fn enumerateChildNodesWithName_usingBlock( &self, name: &NSString, block: &DynBlock<dyn Fn(NonNull<SKNode>, NonNull<Bool>)>, )
block2 only.Sourcepub unsafe fn objectForKeyedSubscript(
&self,
name: &NSString,
) -> Retained<NSArray<SKNode>>
pub unsafe fn objectForKeyedSubscript( &self, name: &NSString, ) -> Retained<NSArray<SKNode>>
Simplified shorthand for enumerateChildNodesWithName that returns an array of the matching nodes. This allows subscripting of the form: NSArray *childrenMatchingName = node[ “ name“]
or even complex like: NSArray siblingsBeginningWithA = node[ “ ../a“]
Parameter name: An Xpath style path that can include simple regular expressions for matching node names.
See: enumerateChildNodesWithName:usingBlock:
pub unsafe fn inParentHierarchy(&self, parent: &SKNode) -> bool
pub unsafe fn runAction(&self, action: &SKAction)
SKAction only.pub unsafe fn runAction_completion( &self, action: &SKAction, block: &DynBlock<dyn Fn()>, )
SKAction and block2 only.pub unsafe fn runAction_withKey(&self, action: &SKAction, key: &NSString)
SKAction only.pub unsafe fn hasActions(&self) -> bool
pub unsafe fn actionForKey(&self, key: &NSString) -> Option<Retained<SKAction>>
SKAction only.pub unsafe fn removeActionForKey(&self, key: &NSString)
pub unsafe fn removeAllActions(&self)
pub unsafe fn containsPoint(&self, p: CGPoint) -> bool
objc2-core-foundation only.Sourcepub unsafe fn nodeAtPoint(&self, p: CGPoint) -> Retained<SKNode>
Available on crate feature objc2-core-foundation only.
pub unsafe fn nodeAtPoint(&self, p: CGPoint) -> Retained<SKNode>
objc2-core-foundation only.Returns the node itself or a child node at the point given. If the receiver is returned there is no child node at the given point.
Returns: a child node or self at the given location.
pub unsafe fn nodesAtPoint(&self, p: CGPoint) -> Retained<NSArray<SKNode>>
objc2-core-foundation only.pub unsafe fn convertPoint_fromNode( &self, point: CGPoint, node: &SKNode, ) -> CGPoint
objc2-core-foundation only.pub unsafe fn convertPoint_toNode( &self, point: CGPoint, node: &SKNode, ) -> CGPoint
objc2-core-foundation only.pub unsafe fn intersectsNode(&self, node: &SKNode) -> bool
pub unsafe fn isEqualToNode(&self, node: &SKNode) -> bool
pub unsafe fn isAccessibilityElement(&self) -> bool
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityElement(&self, accessibility_element: bool)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityElement(&self, accessibility_element: bool)
SKNode_NSAccessibility only.Setter for isAccessibilityElement.
pub unsafe fn accessibilityRole(&self) -> Option<Retained<NSString>>
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityRole(&self, accessibility_role: Option<&NSString>)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityRole(&self, accessibility_role: Option<&NSString>)
SKNode_NSAccessibility only.Setter for accessibilityRole.
This is copied when set.
pub unsafe fn accessibilityRoleDescription(&self) -> Option<Retained<NSString>>
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityRoleDescription(
&self,
accessibility_role_description: Option<&NSString>,
)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityRoleDescription( &self, accessibility_role_description: Option<&NSString>, )
SKNode_NSAccessibility only.Setter for accessibilityRoleDescription.
This is copied when set.
pub unsafe fn accessibilitySubrole(&self) -> Option<Retained<NSString>>
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilitySubrole(
&self,
accessibility_subrole: Option<&NSString>,
)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilitySubrole( &self, accessibility_subrole: Option<&NSString>, )
SKNode_NSAccessibility only.Setter for accessibilitySubrole.
This is copied when set.
pub unsafe fn accessibilityFrame(&self) -> CGRect
SKNode_NSAccessibility and objc2-core-foundation only.Sourcepub unsafe fn setAccessibilityFrame(&self, accessibility_frame: CGRect)
Available on crate features SKNode_NSAccessibility and objc2-core-foundation only.
pub unsafe fn setAccessibilityFrame(&self, accessibility_frame: CGRect)
SKNode_NSAccessibility and objc2-core-foundation only.Setter for accessibilityFrame.
pub unsafe fn accessibilityParent(&self) -> Option<Retained<AnyObject>>
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityParent(
&self,
accessibility_parent: Option<&AnyObject>,
)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityParent( &self, accessibility_parent: Option<&AnyObject>, )
SKNode_NSAccessibility only.Setter for accessibilityParent.
This is a weak property.
§Safety
accessibility_parent should be of the correct type.
pub unsafe fn accessibilityChildren(&self) -> Option<Retained<NSArray>>
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityChildren(
&self,
accessibility_children: Option<&NSArray>,
)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityChildren( &self, accessibility_children: Option<&NSArray>, )
SKNode_NSAccessibility only.Setter for accessibilityChildren.
This is copied when set.
§Safety
accessibility_children generic should be of the correct type.
pub unsafe fn accessibilityHelp(&self) -> Option<Retained<NSString>>
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityHelp(&self, accessibility_help: Option<&NSString>)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityHelp(&self, accessibility_help: Option<&NSString>)
SKNode_NSAccessibility only.Setter for accessibilityHelp.
This is copied when set.
pub unsafe fn accessibilityLabel(&self) -> Option<Retained<NSString>>
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityLabel(
&self,
accessibility_label: Option<&NSString>,
)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityLabel( &self, accessibility_label: Option<&NSString>, )
SKNode_NSAccessibility only.Setter for accessibilityLabel.
This is copied when set.
pub unsafe fn isAccessibilityEnabled(&self) -> bool
SKNode_NSAccessibility only.Sourcepub unsafe fn setAccessibilityEnabled(&self, accessibility_enabled: bool)
Available on crate feature SKNode_NSAccessibility only.
pub unsafe fn setAccessibilityEnabled(&self, accessibility_enabled: bool)
SKNode_NSAccessibility only.Setter for isAccessibilityEnabled.
pub unsafe fn accessibilityHitTest( &self, point: CGPoint, ) -> Option<Retained<AnyObject>>
SKNode_NSAccessibility and objc2-core-foundation only.Methods from Deref<Target = NSResponder>§
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
actionmust be a valid selector.objectshould be of the correct type.
pub fn performKeyEquivalent(&self, event: &NSEvent) -> bool
pub fn mouseDown(&self, event: &NSEvent)
pub fn rightMouseDown(&self, event: &NSEvent)
pub fn otherMouseDown(&self, event: &NSEvent)
pub fn mouseUp(&self, event: &NSEvent)
pub fn rightMouseUp(&self, event: &NSEvent)
pub fn otherMouseUp(&self, event: &NSEvent)
pub fn mouseMoved(&self, event: &NSEvent)
pub fn mouseDragged(&self, event: &NSEvent)
pub fn mouseCancelled(&self, event: &NSEvent)
pub fn scrollWheel(&self, event: &NSEvent)
pub fn rightMouseDragged(&self, event: &NSEvent)
pub fn otherMouseDragged(&self, event: &NSEvent)
pub fn mouseEntered(&self, event: &NSEvent)
pub fn mouseExited(&self, event: &NSEvent)
pub fn keyDown(&self, event: &NSEvent)
pub fn keyUp(&self, event: &NSEvent)
pub fn flagsChanged(&self, event: &NSEvent)
pub fn tabletPoint(&self, event: &NSEvent)
pub fn tabletProximity(&self, event: &NSEvent)
pub fn cursorUpdate(&self, event: &NSEvent)
pub fn magnifyWithEvent(&self, event: &NSEvent)
pub fn rotateWithEvent(&self, event: &NSEvent)
pub fn swipeWithEvent(&self, event: &NSEvent)
pub fn beginGestureWithEvent(&self, event: &NSEvent)
pub fn endGestureWithEvent(&self, event: &NSEvent)
pub fn smartMagnifyWithEvent(&self, event: &NSEvent)
pub fn changeModeWithEvent(&self, event: &NSEvent)
pub fn touchesBeganWithEvent(&self, event: &NSEvent)
pub fn touchesMovedWithEvent(&self, event: &NSEvent)
pub fn touchesEndedWithEvent(&self, event: &NSEvent)
pub fn touchesCancelledWithEvent(&self, event: &NSEvent)
pub fn quickLookWithEvent(&self, event: &NSEvent)
pub fn pressureChangeWithEvent(&self, event: &NSEvent)
Sourcepub fn contextMenuKeyDown(&self, event: &NSEvent)
pub fn contextMenuKeyDown(&self, event: &NSEvent)
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>)
pub fn flushBufferedKeyEvents(&self)
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)
pub fn shouldBeTreatedAsInkEvent(&self, event: &NSEvent) -> bool
pub fn wantsScrollEventsForSwipeTrackingOnAxis( &self, axis: NSEventGestureAxis, ) -> bool
pub fn wantsForwardedScrollEventsForAxis( &self, axis: NSEventGestureAxis, ) -> bool
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
actionmust be a valid selector.sendershould be of the correct type.
pub fn undoManager(&self) -> Option<Retained<NSUndoManager>>
pub fn validateProposedFirstResponder_forEvent( &self, responder: &NSResponder, event: Option<&NSEvent>, ) -> bool
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
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
pub fn class(&self) -> &'static AnyClass
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.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.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,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
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 SKCameraNode
impl AsRef<AnyObject> for SKCameraNode
Source§impl AsRef<NSObject> for SKCameraNode
impl AsRef<NSObject> for SKCameraNode
Source§impl AsRef<NSResponder> for SKCameraNode
impl AsRef<NSResponder> for SKCameraNode
Source§fn as_ref(&self) -> &NSResponder
fn as_ref(&self) -> &NSResponder
Source§impl AsRef<SKCameraNode> for SKCameraNode
impl AsRef<SKCameraNode> for SKCameraNode
Source§impl AsRef<SKNode> for SKCameraNode
impl AsRef<SKNode> for SKCameraNode
Source§impl Borrow<AnyObject> for SKCameraNode
impl Borrow<AnyObject> for SKCameraNode
Source§impl Borrow<NSObject> for SKCameraNode
impl Borrow<NSObject> for SKCameraNode
Source§impl Borrow<NSResponder> for SKCameraNode
impl Borrow<NSResponder> for SKCameraNode
Source§fn borrow(&self) -> &NSResponder
fn borrow(&self) -> &NSResponder
Source§impl Borrow<SKNode> for SKCameraNode
impl Borrow<SKNode> for SKCameraNode
Source§impl ClassType for SKCameraNode
impl ClassType for SKCameraNode
Source§const NAME: &'static str = "SKCameraNode"
const NAME: &'static str = "SKCameraNode"
Source§type ThreadKind = <<SKCameraNode as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<SKCameraNode as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for SKCameraNode
impl CopyingHelper for SKCameraNode
Source§type Result = SKCameraNode
type Result = SKCameraNode
Self if the type has no
immutable counterpart. Read moreSource§impl Debug for SKCameraNode
impl Debug for SKCameraNode
Source§impl Deref for SKCameraNode
impl Deref for SKCameraNode
Source§impl Hash for SKCameraNode
impl Hash for SKCameraNode
Source§impl Message for SKCameraNode
impl Message for SKCameraNode
Source§impl NSCoding for SKCameraNode
impl NSCoding for SKCameraNode
Source§impl NSCopying for SKCameraNode
impl NSCopying for SKCameraNode
Source§impl NSObjectProtocol for SKCameraNode
impl NSObjectProtocol for SKCameraNode
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_refSource§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 NSSecureCoding for SKCameraNode
impl NSSecureCoding for SKCameraNode
Source§impl PartialEq for SKCameraNode
impl PartialEq for SKCameraNode
Source§impl RefEncode for SKCameraNode
impl RefEncode for SKCameraNode
Source§const ENCODING_REF: Encoding = <SKNode as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <SKNode as ::objc2::RefEncode>::ENCODING_REF
impl DowncastTarget for SKCameraNode
impl Eq for SKCameraNode
Auto Trait Implementations§
impl !Freeze for SKCameraNode
impl !RefUnwindSafe for SKCameraNode
impl !Send for SKCameraNode
impl !Sync for SKCameraNode
impl !Unpin for SKCameraNode
impl !UnwindSafe for SKCameraNode
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