iOS [M1适配?]UIKeyCommand接收外接键盘输入

使用场景

给你的应用支持外接键盘,iOS应用或iPad应用。有人可能会问,为啥一个iOS应用要支持外接键盘?M1就是答案

如何使用

- (BOOL)canBecomeFirstResponder {
    return YES;
}
- (NSArray *)keyCommands{
    UIKeyCommand *command = [UIKeyCommand commandWithTitle:@"shift+e" image:nil action:@selector(eShiftKeyPressed) input:@"e" modifierFlags:UIKeyModifierShift propertyList:nil];
    return @[command];
}

- (void)eShiftKeyPressed{
    NSLog(@"%s ==",__func__);
}

注意点

keyCommandsUIResponder的方法,意味着你重写的类一定是在事件响应链上的,如果没有触发,可以尝试becomeFirstResponder

模拟器测试

需要设置两个地方,模拟器才会接收到你的键盘输入


image

image

最后一点

接入正确,设置正确后,并且模拟器在屏幕最前方,这个时候你长按command,可以看到你刚才设置的快捷键列表。

快捷键列表呼出的条件:

  • 只有iPad应用可以呼出
  • 只有设置过少才会显示,太多也不会显示

你可能感兴趣的:(iOS [M1适配?]UIKeyCommand接收外接键盘输入)