RSS Use Your Loaf - iOS 開発ニュース & ヒント フォロー SwiftUI キーボードショートカットスコープ SwiftUIの.keyboardShortcutモディファイア(iOS 14で導入)を使うと、コントロールにキーボードショートカットを割り当てることができます。これらのショートカットは、コントロールの主要なアクションをトリガーします。このモディファイアは、デフォルトのコマンドキー以外の修飾キーもカスタマイズ可能です。具体的な例として、ボタンにショートカットを適用してビュー間を移動させる方法が挙げられます。驚くべきことに、ショートカットは、関連するコントロールが画面外にある場合でも有効なままです。この挙動は、SwiftUIがビュー階層を深さ優先でトラバースしてショートカットのターゲットを見つけることに起因します。システムは、可視性に関係なく、最初に一致するコントロールを見つけることを優先します。これにより、画面外のコントロールが依然としてショートカットに応答するという予期せぬ動作が発生する可能性があります。この問題の回避策として、ビューの状態に基づいて.disabledモディファイアを使用してコントロールを無効にすることが挙げられます。これにより、関連するコントロールが表示されている場合にのみショートカットが有効になります。Curt Clifton氏のコメントが、さらなる背景情報を提供しています。 SwiftUI Keyboard Shortcut Scope useyourloaf.com
.keyboardShortcutモディファイア(iOS 14で導入)を使うと、コントロールにキーボードショートカットを割り当てることができます。これらのショートカットは、コントロールの主要なアクションをトリガーします。このモディファイアは、デフォルトのコマンドキー以外の修飾キーもカスタマイズ可能です。具体的な例として、ボタンにショートカットを適用してビュー間を移動させる方法が挙げられます。驚くべきことに、ショートカットは、関連するコントロールが画面外にある場合でも有効なままです。この挙動は、SwiftUIがビュー階層を深さ優先でトラバースしてショートカットのターゲットを見つけることに起因します。システムは、可視性に関係なく、最初に一致するコントロールを見つけることを優先します。これにより、画面外のコントロールが依然としてショートカットに応答するという予期せぬ動作が発生する可能性があります。この問題の回避策として、ビューの状態に基づいて.disabledモディファイアを使用してコントロールを無効にすることが挙げられます。これにより、関連するコントロールが表示されている場合にのみショートカットが有効になります。Curt Clifton氏のコメントが、さらなる背景情報を提供しています。