tag:crieit.net,2005:https://crieit.net/tags/%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E3%82%AD%E3%83%BC/feed
「カーソルキー」の記事 - Crieit
Crieitでタグ「カーソルキー」に投稿された最近の記事
2021-11-21T08:11:46+09:00
https://crieit.net/tags/%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E3%82%AD%E3%83%BC/feed
tag:crieit.net,2005:PublicArticle/17749
2021-11-11T17:42:02+09:00
2021-11-21T08:11:46+09:00
https://crieit.net/posts/iPadOS-15
iPadOS 15 にするとカーソルキーが動かなくなる問題の修正方法
<p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/danjiro/items/253e5a33a38599098274">フリーソフト9VAeきゅうべえ</a> 、iPad版について。<br />
iPad OS 15 にすると、キーボードのカーソルキーがきかなくなった。Alt+カーソルキーは動作するが、カーソルキーだけ押すと反応しない。</p>
<p>調べると、UIKeyCommand の wantsPriorityOverSystemBehavior を YES に設定しないといけないらしい。カーソルキーがOSのショートカットに割り当てられたみたいだ。<br />
修正には、Xcode 13 (Big Sur以上)が必要</p>
<p>修正前</p>
<pre><code>- (NSArray *)keyCommands {
return @[
[UIKeyCommand keyCommandWithInput: UIKeyInputUpArrow modifierFlags: 0 action: @selector(keyUp)],
[UIKeyCommand keyCommandWithInput: UIKeyInputDownArrow modifierFlags: 0 action: @selector(keyDown)],
[UIKeyCommand keyCommandWithInput: UIKeyInputLeftArrow modifierFlags: 0 action: @selector(keyLeft)],
[UIKeyCommand keyCommandWithInput: UIKeyInputRightArrow modifierFlags: 0 action: @selector(keyRight)]
];
}
</code></pre>
<p>修正後</p>
<pre><code>- (NSArray *)keyCommands {
UIKeyCommand *ukey = [UIKeyCommand keyCommandWithInput: UIKeyInputUpArrow modifierFlags: 0 action: @selector(keyUp)];
UIKeyCommand *dkey = [UIKeyCommand keyCommandWithInput: UIKeyInputDownArrow modifierFlags: 0 action: @selector(keyDown)];
UIKeyCommand *lkey = [UIKeyCommand keyCommandWithInput: UIKeyInputLeftArrow modifierFlags: 0 action: @selector(keyLeft)];
UIKeyCommand *rkey = [UIKeyCommand keyCommandWithInput: UIKeyInputRightArrow modifierFlags: 0 action: @selector(keyRight)];
if (@available(iOS 11.0, *)) if(@available(iOS 15.0, *)){
ukey.wantsPriorityOverSystemBehavior = YES;
dkey.wantsPriorityOverSystemBehavior = YES;
lkey.wantsPriorityOverSystemBehavior = YES;
rkey.wantsPriorityOverSystemBehavior = YES;
}
return @[ ukey, dkey, lkey, rkey ];
}
</code></pre>
<p>if (@available(iOS 11.0, *)) をいれておかないと、iOS 10 で落ちた。</p>
Danjiro Daiwa