Human Interface Guidelines
取り消しとやり直し
取り消しとやり直しを使用すると、さまざまな種類のアクションを簡単に元に戻すことができます。これにより、人々は新しいインターフェイスやタスクを学習するときに、安全に探索して実験することもできます。
人々は、取り消しとやり直しによって最近のアクションを元に戻すことを期待しているため、何かが変わるまで、取り消すことを (多くの場合、複数回) 試みる可能性があります。このような状況では、取り消しがターゲットにしている以前のアクションを覚えていない可能性があり、意図しない変更や欲求不満につながります。人々がコントロールを維持できるようにするには、取り消したりやり直したりした結果を予測し、その結果を強調することが不可欠です。
ベストプラクティス
人々が可能な限り取り消しとやり直しの結果を予測するのを支援してください。 たとえば iPhone では、人々がデバイスを振ったときに表示されるアラートに結果を記述して、取り消しを実行するかキャンセルするかのオプションを彼らに与えられます。取り消しとやり直しメニュー項目を指定すると、メニュー項目のラベルを変更して結果を識別することができます。たとえば、文書ベースのアプリでは、[入力を取り消す] や [太字にやり直す] などのメニュー項目ラベルを使用できます。
取り消しまたはやり直しの結果を表示します。 場合によっては、人々が取り消したい最新のアクションが、コンテンツや表示されなくなった領域に影響を与えることがあります。このような場合は、各取り消しとやり直しの結果を強調表示して、アクションの効果がなかったと人々が思わないようにすることが重要です。これにより、アクションを繰り返し実行する可能性があります。たとえば、スクリーン上に表示されなくなった文書領域の段落を削除した後で取り消す場合は、文書をスクロールして復元された段落を表示します。
人々に何度も取り消しせましょう。 人々が取り消したりやり直したりできる回数に不必要な制限を設けることは避けてください。人々は通常、文書を開いたり、作業を保存したりするなどの論理的な手順を実行してから、実行したすべてのアクションを取り消すことを期待しています。
複数の変更を一度に元に戻すオプションを人々に提供することを検討してください。 いくつかのシナリオによっては、人々は単一のプロパティや属性への段階的な調整など、個別ではあるが関連するアクションのバッチを取り消す機能を高く評価する場合があります。そのため、個々の調整をそれぞれ取り消す必要はありません。それ以外の場合は、文書を開いたり作業を保存したりしてから行ったすべての変更を取り消すための便利な方法を人々に提供することが理にかなっています。
必要な場合にのみ、取り消しとやり直しボタンを提供します。 一般に人々は、macOS アプリの [編集] メニューでアイテムを選択したり、Mac または iPad でキーボードショートカットを使用したり、iPhone を振ったりするなど、システムでサポートされている方法で取り消しとやり直しを開始することを期待しています。あなたのアプリに専用の取り消しとやり直しボタンを提供することが重要な場合は、システムが提供する標準のシンボルを使用して、ナビゲーションバーやツールバーなどの使い慣れた場所にボタンを配置します。
プラットフォームの考慮事項
tvOS または watchOS ではサポートされていません。
iOS、iPad
取り消しとやり直しの標準ジェスチャを再定義することは避けてください。 たとえば、人々は 3 本指でスワイプして取り消しややり直しを開始したり、iPhone を振ったりできます。すべての標準的なジェスチャと同様に、インターフェイスでジェスチャを再定義すると、人々を混乱させ、体験を予測不能にするリスクがあります。
取り消しまたはやり直す操作を簡潔かつ正確に説明して下さい。 取り消しとやり直しのアラートタイトルには、"Undo " または "Redo " の接頭辞が自動的に含まれます (末尾のスペースを含む)。この接頭辞の後に表示するには、取り消しまたはやり直す内容を説明する単語を 1 つか 2 つ追加する必要があります。たとえば、"Undo Name(名前の取り消し)" や "Redo Address Change(住所の変更のやり直し)" などのアラートタイトルを作成できます。
macOS
[編集] メニューに取り消しとやり直しコマンドを配置し、標準のキーボードショートカットをサポートします。 Mac ユーザーは、[編集] メニューの一番上に [取り消し] と [やり直し] が見つけられることを期待しています。また、Command–Z と Shift–Command–Z を使用して、それぞれ取り消しとやり直しを実行することも期待しています。
リソース
関連
開発者用文書
UndoManager (UndoManager)