UIKeyCommand
有人知道如何在 iOS 7 上检测“删除”键吗?
问问题
5571 次
3 回答
29
当人们在使用 Swift 时遇到问题时,我认为 Objective C 和 Swift 中的一个小而完整的示例可能是一个很好的答案。
请注意,Swift 没有\b
用于退格的转义字符,因此您需要使用简单的 Unicode 标量值转义序列\u{8}
. 这映射到与Objective C 中的退格符相同的老式ASCII 控制字符编号 8(“control-H”,或插入符号中的 ^H)。\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 {
override var canBecomeFirstResponder: Bool {
return true;
}
override var keyCommands: [UIKeyCommand]? {
return [
UIKeyCommand(input: "\u{8}", modifierFlags: [], action: #selector(backspacePressed))
]
}
@objc func backspacePressed() {
NSLog("Backspace key was pressed")
}
}
于 2014-12-22T18:44:08.200 回答
18
真的很简单 - 需要寻找退格符“\b”
于 2014-02-27T13:22:16.327 回答
-2
您可以随时尝试 UIKeyInput。https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIKeyInput_Protocol/index.html#//apple_ref/occ/intfm/UIKeyInput/deleteBackward
函数应该是
- (void)deleteBackward
于 2014-12-22T19:07:29.740 回答