IOS Catalyst Mac设置键盘响应事件

使用场景

ios项目通过catalyst支持Mac后,想要获取键盘事件,比如“tab”键,fn+F1,fn+F2,
如何使用

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

其他按键参考ASCII
例如

//空格

NSString *space = [NSString stringWithFormat:@"%c",32];

//回车

NSString *enter = [NSString stringWithFormat:@"%c",13];

//Tab

NSString *tab = [NSString stringWithFormat:@"%c",9];

//1

NSString *one = [NSString stringWithFormat:@"%c",49]; 

注意点

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

becomeFirstResponder

备注

部分按键、组合键在系统层被截断,无法监听,如F1~F12,command+c、command+v等。

无法区分按键的按下和松开

测试

Catalina,BigSur系统测试正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值