Loading...

How to detect Delete key press in Swift?

question macOS swift
Ram Patra Published on August 14, 2020

Delete key press detection is slightly different than other keys. It uses NSDeleteCharacter like below:

event.charactersIgnoringModifiers == String(UnicodeScalar(NSDeleteCharacter)!) 

So, the complete code may look like:

NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
    if self.keyDown(with: $0) {
        return nil // needed to get rid of purr sound
    } else {
        return $0
    }
}

private func keyDown(with event: NSEvent) -> Bool {
    if event.charactersIgnoringModifiers == String(UnicodeScalar(NSDeleteCharacter)!) {
    	print("Delete key presses!")
        return true
    } else {
    	return false
    }
}
Presentify

Take your presentation to the next level.

FaceScreen

Put your face and name on your screen.

KeyScreen

Show keypresses on your screen.

ToDoBar

Your to-dos on your menu bar.

SimpleFill

Fill forms using your right-click menu.

IconSim

Preview your Mac app icons.

Ram Patra Published on August 14, 2020
Image placeholder

Keep reading

If this article was helpful, others might be too

question macOS swift August 14, 2020 How to quit or close an app in macOS using Swift?

You can quit or exit an app with:NSApp.terminate(self)

question macOS swift March 14, 2021 How to ignore mouse events in a view or window in macOS?

You can ignore mouse events in a window/view by adding just a single line of code.

question swiftui swift February 19, 2025 How to change the window level to floating, popUpMenu, etc. in SwiftUI?

When developing macOS applications with SwiftUI, you might need to create floating windows that stay on top of other windows. While modern macOS versions (15+) make this straightforward with the .windowLevel(.floating) modifier, supporting older versions requires a different approach. In this post, I’ll show you how to create floating windows that work across different macOS versions.

Like my work?

Please, feel free to reach out. I would be more than happy to chat.