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