使用UIKeyCommand检测删除键

任何人都知道如何使用iOS 7上的UIKeyCommand检测“删除”键?

简单真的 – 需要寻找退格字符“\ b”

当人们遇到Swift问题时,我认为Objective C和Swift中的一个小例子是一个很好的答案。

请注意,Swift没有用于退格的\b转义字符,所以您需要使用一个简单的Unicode标量值转义序列\u{8} 。 这映射到旧的ASCII控制字符编号8-“控制-H”,对于我们这些老的^ H ^ H ^ Hmature足够记住那些日子 – 对于退格,就像在目标C中的\b一样。

下面是一个Objective C视图控制器实现,它捕获退格:

 #import "ViewController.h" @implementation ViewController // The View Controller must be able to become a first responder to register // key presses. - (BOOL)canBecomeFirstResponder { return YES; } - (NSArray *)keyCommands { return @[ [UIKeyCommand keyCommandWithInput:@"\b" modifierFlags:0 action:@selector(backspacePressed)] ]; } - (void)backspacePressed { NSLog(@"Backspace key was pressed"); } @end 

这里是Swift中的等价视图控制器:

 import UIKit class ViewController: UIViewController { // The View Controller must be able to become a first responder to register // key presses. override func canBecomeFirstResponder() -> Bool { return true; } func keyCommands() -> NSArray { return [ UIKeyCommand(input: "\u{8}", modifierFlags: .allZeros, action: "backspacePressed") ] } func backspacePressed() { NSLog("Backspace key was pressed") } }