使用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") } }
你可以随时尝试UIKeyInput。 https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIKeyInput_Protocol/index.html#//apple_ref/occ/intfm/UIKeyInput/deleteBackward
function应该是
– (void)deleteBackward