---
title: "keyDown(atPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:at:)"
framework: Professional Video Applications
role: symbol
role_heading: Instance Method
platforms: [fxplug 4.0+]
path: "professional_video_applications/fxonscreencontrol_v4/keydown(atpositionx:positiony:keypressed:modifiers:forceupdate:didhandle:at:)"
---

# keyDown(atPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:at:)

Provides information when a key is pressed.

## Declaration

```swift
func keyDown(atPositionX mousePositionX: Double, positionY mousePositionY: Double, keyPressed asciiKey: UInt16, modifiers: FxModifierKeys, forceUpdate: UnsafeMutablePointer<ObjCBool>!, didHandle: UnsafeMutablePointer<ObjCBool>!, at time: CMTime)
```

## Parameters

- `mousePositionX`: X position of the pointer (in ‘drawingCoordinates’ space).
- `mousePositionY`: Y position of the pointer (in ‘drawingCoordinates’ space).
- `asciiKey`: The ASCII representation of the key pressed.
- `modifiers`: The keyboard modifiers currently pressed.
- `forceUpdate`: Set to YES if the filter/generator associated with this control needs to be re-calculated; NO otherwise.
- `didHandle`: Set to YES if the control performed an action because of this key press; otherwise, the event is passed back up the object tree.
- `time`: The current time when the key press happened.

## Mentioned in

Adding onscreen controls to plug-ins

## Discussion

Discussion Depending on the host application, the time value may be relative to the start of the timeline or to the start of the clip. See the header file FxPlug/FxHostCapabilities.h.

## See Also

### Instance Methods

- [drawOSC(withWidth:height:activePart:destinationImage:at:)](professional_video_applications/fxonscreencontrol_v4/drawosc(withwidth:height:activepart:destinationimage:at:).md)
- [drawingCoordinates()](professional_video_applications/fxonscreencontrol_v4/drawingcoordinates().md)
- [hitTestOSC(atMousePositionX:mousePositionY:activePart:at:)](professional_video_applications/fxonscreencontrol_v4/hittestosc(atmousepositionx:mousepositiony:activepart:at:).md)
- [keyUp(atPositionX:positionY:keyPressed:modifiers:forceUpdate:didHandle:at:)](professional_video_applications/fxonscreencontrol_v4/keyup(atpositionx:positiony:keypressed:modifiers:forceupdate:didhandle:at:).md)
- [mouseDown(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mousedown(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)
- [mouseDragged(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mousedragged(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)
- [mouseEntered(atPositionX:positionY:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mouseentered(atpositionx:positiony:modifiers:forceupdate:at:).md)
- [mouseExited(atPositionX:positionY:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mouseexited(atpositionx:positiony:modifiers:forceupdate:at:).md)
- [mouseMoved(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mousemoved(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)
- [mouseUp(atPositionX:positionY:activePart:modifiers:forceUpdate:at:)](professional_video_applications/fxonscreencontrol_v4/mouseup(atpositionx:positiony:activepart:modifiers:forceupdate:at:).md)
