SKFieldNode

Struct SKFieldNode 

Source
pub struct SKFieldNode { /* private fields */ }
Available on crate feature SKFieldNode and crate feature SKNode and crate feature objc2-app-kit and macOS only.
Expand description

Implementations§

Source§

impl SKFieldNode

Source

pub unsafe fn region(&self) -> Option<Retained<SKRegion>>

Available on crate feature SKRegion only.

The region property is the domain of the field’s effect. No force is applied to objects outside the region.

Source

pub unsafe fn setRegion(&self, region: Option<&SKRegion>)

Available on crate feature SKRegion only.

Setter for region.

Source

pub unsafe fn strength(&self) -> c_float

strength scaling value. default 1.0

Source

pub unsafe fn setStrength(&self, strength: c_float)

Setter for strength.

Source

pub unsafe fn falloff(&self) -> c_float

The falloff exponent used to calculate field strength at a distance. Falloff starts at the minimum radius.

The default exponent is zero, which results in a uniform field with no falloff.

See: minimumRadius

Source

pub unsafe fn setFalloff(&self, falloff: c_float)

Setter for falloff.

Source

pub unsafe fn minimumRadius(&self) -> c_float

minimum radius of effect. Default is very small.

Source

pub unsafe fn setMinimumRadius(&self, minimum_radius: c_float)

Setter for minimumRadius.

Source

pub unsafe fn isEnabled(&self) -> bool

If enabled, a field has an effect.

default YES

Source

pub unsafe fn setEnabled(&self, enabled: bool)

Setter for isEnabled.

Source

pub unsafe fn isExclusive(&self) -> bool

If a field is exclusive, it suppresses any other field in its region of effect. If two or more exclusive fields overlap, it is undefined which one of them will take effect

See: region

Source

pub unsafe fn setExclusive(&self, exclusive: bool)

Setter for isExclusive.

Source

pub unsafe fn categoryBitMask(&self) -> u32

Logical categories the field belongs to. Default is all categories. These categories correspond to fieldBitMasks, and can be used to enforce that a particular field applies to a particular category of objects.

See: SKPhysicsBody.fieldBitMask

See: SKEmitterNode.fieldBitMask

Source

pub unsafe fn setCategoryBitMask(&self, category_bit_mask: u32)

Setter for categoryBitMask.

Source

pub unsafe fn smoothness(&self) -> c_float

fields without a smoothness component will return 0

See: noiseFieldWithSmoothness:smoothness:animationSpeed

See: turbulenceFieldWithSmoothness:smoothness:animationSpeed

Source

pub unsafe fn setSmoothness(&self, smoothness: c_float)

Setter for smoothness.

Source

pub unsafe fn animationSpeed(&self) -> c_float

fields that can be animated can have non zero values.

A value of 2 will animated twice as fast as a value of 1.

See: noiseFieldWithSmoothness:smoothness:animationSpeed

See: turbulenceFieldWithSmoothness:smoothness:animationSpeed

Source

pub unsafe fn setAnimationSpeed(&self, animation_speed: c_float)

Setter for animationSpeed.

Source

pub unsafe fn texture(&self) -> Option<Retained<SKTexture>>

Available on crate feature SKTexture only.

fields constructed with a texture can be uppdated by assigning a new texture

See: velocityFieldWithTexture:velocityTexture

Source

pub unsafe fn setTexture(&self, texture: Option<&SKTexture>)

Available on crate feature SKTexture only.

Setter for texture.

Source

pub unsafe fn dragField(mtm: MainThreadMarker) -> Retained<SKFieldNode>

Slows an object proportionally to the object’s velocity. Use this to simulate effects such as friction from motion through the air.

Source

pub unsafe fn vortexField(mtm: MainThreadMarker) -> Retained<SKFieldNode>

Applies a force tangential to the direction from the sample point to the field’s position. The force will be CCW to the direction. Make the strength negative to apply force in the CW direction. Amount is proportional to distance from center and the object’s mass. Use this to create effects such as tornadoes.

Source

pub unsafe fn radialGravityField(mtm: MainThreadMarker) -> Retained<SKFieldNode>

Applies a force in the direction of the origin of the field in local space. To repel objects, use a negative strength. The force is proportional to the distance from the field origin. Varies with the mass of the object according to F = ma The field node’s rotation property can be used to orient the gravity in a particular direction.

Source

pub unsafe fn velocityFieldWithTexture( velocity_texture: &SKTexture, mtm: MainThreadMarker, ) -> Retained<SKFieldNode>

Available on crate feature SKTexture only.

The supplied texture contains velocity values for any object entering the field’s area of effect. If no texture is supplied, the direction property is used instead. Velocity fields override the effect of any other acceleration applied to the body. Velocity fields are typically used for such effects as advection, for example, a velocity field might describe the velocity on the surface of a river. An object placed in the river would then follow the river.

Parameter velocityTexture: The R and G channels of the supplied texture become x and y components of velocity. B and A, if present in the SKTexture, are ignored.

See: texture

Source

pub unsafe fn noiseFieldWithSmoothness_animationSpeed( smoothness: CGFloat, speed: CGFloat, mtm: MainThreadMarker, ) -> Retained<SKFieldNode>

Available on crate feature objc2-core-foundation only.

A time varying differentiable Perlin simplex noise field. By default a smooth noise is calculated, and the field is time varying. Use this to simulate such effects as fireflies, or snow. To freeze the noise in place, set animationSpeed to 0.0. Mass is ignored.

Parameter smoothness: value of 0 means as noisy as possible, 1 means as smooth as possible

Parameter speed: is the general rate in Hz that any particular texel changes to a different value

See: smoothness

See: animationSpeed

Source

pub unsafe fn turbulenceFieldWithSmoothness_animationSpeed( smoothness: CGFloat, speed: CGFloat, mtm: MainThreadMarker, ) -> Retained<SKFieldNode>

Available on crate feature objc2-core-foundation only.

Just like Noise, except the strength of the noise is proportional to the velocity of the object in the field.

Parameter smoothness: value of 0 means as noisy as possible, 1 means as smooth as possible

Parameter speed: is the general rate in Hz that any particular texel changes to a different value

See: smoothness

See: animationSpeed

Source

pub unsafe fn springField(mtm: MainThreadMarker) -> Retained<SKFieldNode>

A Hooke’s law force - a force linearly proportional to distance from the center of the field. An object in this field will oscillate with a period proportional to the inverse of the mass. An example use is to keep objects confined to a particular region.

Source

pub unsafe fn electricField(mtm: MainThreadMarker) -> Retained<SKFieldNode>

A force proportional to the charge on the object. A charge property has been added to SKPhysicsBodies to accomplish this. An example use of this field is to make objects behavior differently from one another when they enter a region, or to make an object’s behavior different than its mass based behavior This field models the first part of the Lorentz equation, F = qE

Source

pub unsafe fn magneticField(mtm: MainThreadMarker) -> Retained<SKFieldNode>

A force proportional to the charge on the object and the object’s velocity. A charge property has been added to SKPhysicsBodies to accomplish this. An example use of this field is to make objects behavior differently from one another when they enter a region, or to make an object’s behavior different than its mass based behavior This field models the second part of the Lorentz equation, F = qvB

Source§

impl SKFieldNode

Methods declared on superclass SKNode.

Source

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

Source

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.

Source

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

Source

pub unsafe fn nodeWithFileNamed( filename: &NSString, mtm: MainThreadMarker, ) -> Option<Retained<Self>>

Source

pub unsafe fn nodeWithFileNamed_securelyWithClasses_andError( filename: &NSString, classes: &NSSet<AnyClass>, mtm: MainThreadMarker, ) -> Result<Retained<Self>, Retained<NSError>>

§Safety

classes generic probably has further requirements.

Source§

impl SKFieldNode

Methods declared on superclass NSObject.

Source

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

Methods from Deref<Target = SKNode>§

Source

pub unsafe fn frame(&self) -> CGRect

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

pub unsafe fn calculateAccumulatedFrame(&self) -> CGRect

Available on crate feature objc2-core-foundation only.

Calculates the bounding box including all child nodes in parents coordinate system.

Source

pub unsafe fn position(&self) -> CGPoint

Available on crate feature objc2-core-foundation only.

The position of the node in the parent’s coordinate system

Source

pub unsafe fn setPosition(&self, position: CGPoint)

Available on crate feature objc2-core-foundation only.

Setter for position.

Source

pub unsafe fn zPosition(&self) -> CGFloat

Available on crate feature 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.

Source

pub unsafe fn setZPosition(&self, z_position: CGFloat)

Available on crate feature objc2-core-foundation only.

Setter for zPosition.

Source

pub unsafe fn zRotation(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.

The Euler rotation about the z axis (in radians)

Source

pub unsafe fn setZRotation(&self, z_rotation: CGFloat)

Available on crate feature objc2-core-foundation only.

Setter for zRotation.

Source

pub unsafe fn xScale(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.

The scaling in the X axis

Source

pub unsafe fn setXScale(&self, x_scale: CGFloat)

Available on crate feature objc2-core-foundation only.

Setter for xScale.

Source

pub unsafe fn yScale(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.

The scaling in the Y axis

Source

pub unsafe fn setYScale(&self, y_scale: CGFloat)

Available on crate feature objc2-core-foundation only.

Setter for yScale.

Source

pub unsafe fn speed(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.

The speed multiplier applied to all actions run on this node. Inherited by its children.

Source

pub unsafe fn setSpeed(&self, speed: CGFloat)

Available on crate feature objc2-core-foundation only.

Setter for speed.

Source

pub unsafe fn alpha(&self) -> CGFloat

Available on crate feature objc2-core-foundation only.

Alpha of this node (multiplied by the output color to give the final result)

Source

pub unsafe fn setAlpha(&self, alpha: CGFloat)

Available on crate feature objc2-core-foundation only.

Setter for alpha.

Source

pub unsafe fn isPaused(&self) -> bool

Controls whether or not the node’s actions is updated or paused.

Source

pub unsafe fn setPaused(&self, paused: bool)

Setter for isPaused.

Source

pub unsafe fn isHidden(&self) -> bool

Controls whether or not the node and its children are rendered.

Source

pub unsafe fn setHidden(&self, hidden: bool)

Setter for isHidden.

Source

pub unsafe fn isUserInteractionEnabled(&self) -> bool

Controls whether or not the node receives touch events

Source

pub unsafe fn setUserInteractionEnabled(&self, user_interaction_enabled: bool)

Source

pub unsafe fn focusBehavior(&self) -> SKNodeFocusBehavior

Determines how this node participates in the focus system. The default is SKNodeFocusBehaviorNone.

Source

pub unsafe fn setFocusBehavior(&self, focus_behavior: SKNodeFocusBehavior)

Setter for focusBehavior.

Source

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.

Source

pub unsafe fn children(&self) -> Retained<NSArray<SKNode>>

The children of this node.

Source

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

The client assignable name.

In general, this should be unique among peers in the scene graph.

Source

pub unsafe fn setName(&self, name: Option<&NSString>)

Setter for name.

This is copied when set.

Source

pub unsafe fn scene(&self) -> Option<Retained<SKScene>>

Available on crate features SKEffectNode and SKScene only.

The scene that the node is currently in.

Source

pub unsafe fn physicsBody(&self) -> Option<Retained<SKPhysicsBody>>

Available on crate feature SKPhysicsBody only.

Physics body attached to the node, with synchronized scale, rotation, and position

Source

pub unsafe fn setPhysicsBody(&self, physics_body: Option<&SKPhysicsBody>)

Available on crate feature SKPhysicsBody only.

Setter for physicsBody.

Source

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.

Source

pub unsafe fn setUserData(&self, user_data: Option<&NSMutableDictionary>)

Setter for userData.

§Safety

user_data generic should be of the correct type.

Source

pub unsafe fn reachConstraints(&self) -> Option<Retained<SKReachConstraints>>

Available on crate feature SKReachConstraints only.

Kinematic constraints, used in IK solving

Source

pub unsafe fn setReachConstraints( &self, reach_constraints: Option<&SKReachConstraints>, )

Available on crate feature SKReachConstraints only.

Setter for reachConstraints.

This is copied when set.

Source

pub unsafe fn constraints(&self) -> Option<Retained<NSArray<SKConstraint>>>

Available on crate feature 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.

Source

pub unsafe fn setConstraints(&self, constraints: Option<&NSArray<SKConstraint>>)

Available on crate feature SKConstraint only.

Setter for constraints.

This is copied when set.

Source

pub unsafe fn attributeValues( &self, ) -> Retained<NSDictionary<NSString, SKAttributeValue>>

👎Deprecated
Available on crate feature 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.).

Source

pub unsafe fn setAttributeValues( &self, attribute_values: &NSDictionary<NSString, SKAttributeValue>, )

👎Deprecated
Available on crate feature SKAttribute only.

Setter for attributeValues.

This is copied when set.

Source

pub unsafe fn valueForAttributeNamed( &self, key: &NSString, ) -> Option<Retained<SKAttributeValue>>

👎Deprecated
Available on crate feature SKAttribute only.
Source

pub unsafe fn setValue_forAttributeNamed( &self, value: &SKAttributeValue, key: &NSString, )

👎Deprecated
Available on crate feature SKAttribute only.
Source

pub unsafe fn setScale(&self, scale: CGFloat)

Available on crate feature objc2-core-foundation only.

Sets both the x & y scale

Parameter scale: the uniform scale to set.

Source

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.

Source

pub unsafe fn insertChild_atIndex(&self, node: &SKNode, index: NSInteger)

Source

pub unsafe fn removeChildrenInArray(&self, nodes: &NSArray<SKNode>)

Source

pub unsafe fn removeAllChildren(&self)

Source

pub unsafe fn removeFromParent(&self)

Source

pub unsafe fn moveToParent(&self, parent: &SKNode)

Source

pub unsafe fn childNodeWithName( &self, name: &NSString, ) -> Option<Retained<SKNode>>

Source

pub unsafe fn enumerateChildNodesWithName_usingBlock( &self, name: &NSString, block: &DynBlock<dyn Fn(NonNull<SKNode>, NonNull<Bool>)>, )

Available on crate feature block2 only.
Source

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:

Source

pub unsafe fn inParentHierarchy(&self, parent: &SKNode) -> bool

Source

pub unsafe fn runAction(&self, action: &SKAction)

Available on crate feature SKAction only.
Source

pub unsafe fn runAction_completion( &self, action: &SKAction, block: &DynBlock<dyn Fn()>, )

Available on crate features SKAction and block2 only.
Source

pub unsafe fn runAction_withKey(&self, action: &SKAction, key: &NSString)

Available on crate feature SKAction only.
Source

pub unsafe fn hasActions(&self) -> bool

Source

pub unsafe fn actionForKey(&self, key: &NSString) -> Option<Retained<SKAction>>

Available on crate feature SKAction only.
Source

pub unsafe fn removeActionForKey(&self, key: &NSString)

Source

pub unsafe fn removeAllActions(&self)

Source

pub unsafe fn containsPoint(&self, p: CGPoint) -> bool

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

pub unsafe fn nodeAtPoint(&self, p: CGPoint) -> Retained<SKNode>

Available on crate feature 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.

Source

pub unsafe fn nodesAtPoint(&self, p: CGPoint) -> Retained<NSArray<SKNode>>

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

pub unsafe fn convertPoint_fromNode( &self, point: CGPoint, node: &SKNode, ) -> CGPoint

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

pub unsafe fn convertPoint_toNode( &self, point: CGPoint, node: &SKNode, ) -> CGPoint

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

pub unsafe fn intersectsNode(&self, node: &SKNode) -> bool

Source

pub unsafe fn isEqualToNode(&self, node: &SKNode) -> bool

Source

pub unsafe fn isAccessibilityElement(&self) -> bool

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityElement(&self, accessibility_element: bool)

Available on crate feature SKNode_NSAccessibility only.
Source

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

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityRole(&self, accessibility_role: Option<&NSString>)

Available on crate feature SKNode_NSAccessibility only.

Setter for accessibilityRole.

This is copied when set.

Source

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

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityRoleDescription( &self, accessibility_role_description: Option<&NSString>, )

Available on crate feature SKNode_NSAccessibility only.

Setter for accessibilityRoleDescription.

This is copied when set.

Source

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

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilitySubrole( &self, accessibility_subrole: Option<&NSString>, )

Available on crate feature SKNode_NSAccessibility only.

Setter for accessibilitySubrole.

This is copied when set.

Source

pub unsafe fn accessibilityFrame(&self) -> CGRect

Available on crate features SKNode_NSAccessibility and objc2-core-foundation only.
Source

pub unsafe fn setAccessibilityFrame(&self, accessibility_frame: CGRect)

Available on crate features SKNode_NSAccessibility and objc2-core-foundation only.

Setter for accessibilityFrame.

Source

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

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityParent( &self, accessibility_parent: Option<&AnyObject>, )

Available on crate feature SKNode_NSAccessibility only.

Setter for accessibilityParent.

This is a weak property.

§Safety

accessibility_parent should be of the correct type.

Source

pub unsafe fn accessibilityChildren(&self) -> Option<Retained<NSArray>>

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityChildren( &self, accessibility_children: Option<&NSArray>, )

Available on crate feature SKNode_NSAccessibility only.

Setter for accessibilityChildren.

This is copied when set.

§Safety

accessibility_children generic should be of the correct type.

Source

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

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityHelp(&self, accessibility_help: Option<&NSString>)

Available on crate feature SKNode_NSAccessibility only.

Setter for accessibilityHelp.

This is copied when set.

Source

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

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityLabel( &self, accessibility_label: Option<&NSString>, )

Available on crate feature SKNode_NSAccessibility only.

Setter for accessibilityLabel.

This is copied when set.

Source

pub unsafe fn isAccessibilityEnabled(&self) -> bool

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn setAccessibilityEnabled(&self, accessibility_enabled: bool)

Available on crate feature SKNode_NSAccessibility only.
Source

pub unsafe fn accessibilityHitTest( &self, point: CGPoint, ) -> Option<Retained<AnyObject>>

Available on crate features SKNode_NSAccessibility and objc2-core-foundation only.

Methods from Deref<Target = NSResponder>§

Source

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

§Safety

This is not retained internally, you must ensure the object is still alive.

Source

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

Setter for nextResponder.

§Safety

This is unretained, you must ensure the object is kept alive while in use.

Source

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

§Safety
  • action must be a valid selector.
  • object should be of the correct type.
Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

pub fn mouseCancelled(&self, event: &NSEvent)

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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:

Source

pub unsafe fn noResponderFor(&self, event_selector: Sel)

§Safety

event_selector must be a valid selector.

Source

pub fn acceptsFirstResponder(&self) -> bool

Source

pub fn becomeFirstResponder(&self) -> bool

Source

pub fn resignFirstResponder(&self) -> bool

Source

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

Source

pub fn flushBufferedKeyEvents(&self)

Source

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

§Safety

sender should be of the correct type.

Source

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

Source

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

Source

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

Source

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

Source

pub unsafe fn supplementalTargetForAction_sender( &self, action: Sel, sender: Option<&AnyObject>, ) -> Option<Retained<AnyObject>>

§Safety
  • action must be a valid selector.
  • sender should be of the correct type.
Source

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

Source

pub fn validateProposedFirstResponder_forEvent( &self, responder: &NSResponder, event: Option<&NSEvent>, ) -> bool

Source

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

Source

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

Source

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

§Safety

sender should be of the correct type.

Source

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

§Safety

sender should be of the correct type.

Source

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

§Safety

sender should be of the correct type.

Source

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

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

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

pub fn class(&self) -> &'static AnyClass

Dynamically find the class of this object.

§Panics

May panic if the object is invalid (which may be the case for objects returned from unavailable init/new methods).

§Example

Check that an instance of NSObject has the precise class NSObject.

use objc2::ClassType;
use objc2::runtime::NSObject;

let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use Ivar::load instead.

Use Ivar::load instead.

§Safety

The object must have an instance variable with the given name, and it must be of type T.

See Ivar::load_ptr for details surrounding this.

Source

pub fn downcast_ref<T>(&self) -> Option<&T>
where T: DowncastTarget,

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 SKFieldNode

Source§

fn as_ref(&self) -> &AnyObject

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

impl AsRef<NSObject> for SKFieldNode

Source§

fn as_ref(&self) -> &NSObject

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

impl AsRef<NSResponder> for SKFieldNode

Source§

fn as_ref(&self) -> &NSResponder

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

impl AsRef<SKFieldNode> for SKFieldNode

Source§

fn as_ref(&self) -> &Self

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

impl AsRef<SKNode> for SKFieldNode

Source§

fn as_ref(&self) -> &SKNode

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

impl Borrow<AnyObject> for SKFieldNode

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for SKFieldNode

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSResponder> for SKFieldNode

Source§

fn borrow(&self) -> &NSResponder

Immutably borrows from an owned value. Read more
Source§

impl Borrow<SKNode> for SKFieldNode

Source§

fn borrow(&self) -> &SKNode

Immutably borrows from an owned value. Read more
Source§

impl ClassType for SKFieldNode

Source§

const NAME: &'static str = "SKFieldNode"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = SKNode

The superclass of this class. Read more
Source§

type ThreadKind = <<SKFieldNode as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl CopyingHelper for SKFieldNode

Source§

type Result = SKFieldNode

The immutable counterpart of the type, or Self if the type has no immutable counterpart. Read more
Source§

impl Debug for SKFieldNode

Source§

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

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

impl Deref for SKFieldNode

Source§

type Target = SKNode

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl Hash for SKFieldNode

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for SKFieldNode

Source§

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

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

impl NSCoding for SKFieldNode

Source§

unsafe fn encodeWithCoder(&self, coder: &NSCoder)
where Self: Sized + Message,

Safety Read more
Source§

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

Safety Read more
Source§

impl NSCopying for SKFieldNode

Source§

fn copy(&self) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Returns a new instance that’s a copy of the receiver. Read more
Source§

unsafe fn copyWithZone(&self, zone: *mut NSZone) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Returns a new instance that’s a copy of the receiver. Read more
Source§

impl NSObjectProtocol for SKFieldNode

Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl NSSecureCoding for SKFieldNode

Source§

impl PartialEq for SKFieldNode

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for SKFieldNode

Source§

const ENCODING_REF: Encoding = <SKNode as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for SKFieldNode

Source§

impl Eq for SKFieldNode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'a, T> MainThreadOnly for T
where T: ClassType<ThreadKind = dyn MainThreadOnly + 'a> + ?Sized,

Source§

fn mtm(&self) -> MainThreadMarker

Get a MainThreadMarker from the main-thread-only object. Read more
Source§

fn alloc(mtm: MainThreadMarker) -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class on the main thread. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,