Retina MacBook Proを修理に出している間、作りたいアプリがあってMacBook Pro 13インチ mid 2009でアプリを作っていました。久しぶりに1,280×800の画面でXcodeを使ってみると、画面が狭くてフルスクリーンにしても辛いですね。今までそれほど使っていなかったショートカットを必死に覚えて、Xcode4.5の新機能を駆使するようになりました。Retina MacBook Proが戻って来て、1,920×1,200や1,680×1,050のゆったりした環境も戻ってきましたが、小技を覚えたおかげで今までより快適に開発が出来るようになりました。
コード入力時の操作
3本指タップでクイックヘルプ
Macの辞書検索機能と同じように、調べたいクラスやメソッドなどの語句を3本指タップするとクイックヘルプがでます。
「option」キーを押しながらクリックしても同じことができますが、3本指タップに慣れると「option」キーを押すことすらまどろっこしくなります。
入力補完
- 補完リストの表示
コピー&ペーストして後から上書きで編集する時など、シンボルの途中で「esc」キーを押すと補完リストを表示してくれます。
(例)NSArrayのプロパティ宣言をコピーしてNSMutableArrayのプロパティ宣言を作ります
NSArrayの行をコピー→NSのあとに「mu」入力→「esc」→NSMutableArray選択→「fn」+「option」+「delete」
- Tabキーで共通部分を自動入力
入力補完リストが表示された状態で「tab」キーを押すと共通部分は確定してくれます。
(例)「- vi」→「tab」→「w」でviewWillAppearまでたどりつけます。
NSStringやMSMutableArrayやColor関係など、先頭部分が共通のメソッドがずらっと候補が並ぶ時に便利です。
- 閉じ括弧の自動入力
入力補完の最後が「]」や「)」の時は「;」を入力するだけで「]」や「)」を確定してその後に「;」を入力してくれます。
if 文の閉じ括弧「)」も「{」の入力で「)」を入力してくれます。
「”]」の時は補完してくれなかったり、使い始めは、@””の中の文字を入力した後に「”」の補完を期待して「;」や「]」を入力してしまったりして失敗しますが、どういう時に補完してくれるかつかめば少し便利です。また、閉じ括弧がグレーでまだ確定していないのを見てから「;」を入力すれば良い感じです。
- 次のプレースホルダに移動
「control」 + 「/」で次のプレースホルダにカーソルが移動します。
「control」 + 「/」→ 入力 →「tab」
ソースファイル内のどの場所にカーソルがあっても移動してくれるので便利です。カーソルがプレースホルダ内にある時は「tab」で次のプレースホルダに移動します。
コード内のメソッド検索
「control」+「 6」でメソッド一覧を表示して、アルファベットを入力し始めると入力した文字でフィルターをかけてくれます。
なるべく少ない行数で短いコードにしたいものですが、いろんな機能を追加していくとついつい1つのソールファイルにたくさんのメソッドを作ってしいますよね。そんなファイルを編集している時に、特定のメソッドに移動するのに便利です。
惜しむらくは、「英数」キーと「かな」キーが「return」キー扱いになってしまうことです。アルファベットを入力する前に「英数」キーを入力する癖がついてしまっているので、このキーはスルーして欲しいところです。
シンボルのリアルタイム同時変更
スコープ内で同一シンボルをリアルタイムに同時変換できます。 (⌘+control+e)
(例)「theMenu」 を「self.theMenu」にまとめて変換
どこかの「theMenu」にカーソルおく → スコープ内の同じシンボルに点線下線がつく
↓
「⌘」+「control」+「e」押す → 他の同じシンボルにグレーでマスクがかかる
↓
「self.」を入力
※ Xcodeがエラーと判断している行があると機能しません。
インデント
現在行/選択行を右にインデント:「⌘」 + 「]」
現在行/選択行のインデント削除:「⌘」 + 「[」
コメント
- 忘備録
コメントに「TODO:」というキーワードを入れておくと、メソッド一覧で表示されます。
ファイル単位でしか振り返られないので、複数のファイルを同時にいじる時は「#warning」のほうが忘れなくて良いと思いますが、1つのファイルでいろいろとやることがある時の忘備録として便利です。
- コメント化・解除
現在行/選択行をコメント化・解除:「⌘」 + 「/」
Objective-Cの新しい記述方法
- NSNumber
- NSArray
- NSDictionary
画面操作
ファイルの移動
- ヘッダファイルとメインファイルの移動:「⌘」+「control」+「↑」/「↓」
- ソース編集履歴の移動−前:「⌘」 + 「control」 + 「←」(or 2本指スワイプで右に)
- ソース編集履歴の移動−次:「⌘」 + 「control」 + 「→」(or 2本指スワイプで左に)
ビューの表示・非表示
- 左のコントロールパネルの表示・非表示:「⌘」 + 「0」
- 右のコントロールパネルの表示・非表示:「⌘」 + 「option」+「0」
- アシスタントビューの消去:「⌘」+「return」
- デバッグエリアの表示・非表示:「⌘」+ 「shift」+「y」
ソースファイルの表示
- ファイルをアシスタントウィンドウに開く:「option」を押しながらファイルをクリック
- ソースの検索:「⌘」+「shift」+「o」
- メインウィンドウへ:ソース選択後、「return」
- アシスタントウィンドウへ:ソース選択後、「option」+「return」
- 表示する場所を指定:ソース選択後、「shift」+「option」+「return」
タブ
タブは縦方向の有効スペースが狭くなりますが、後述のようにデバッグ専用タブを設けると意外と便利です。
- タブの作成:「⌘」+「t」
- タブの移動:「⌘」+「shift」+「[」/「]」
閉じる
- プロジェクトを閉じる:「⌘」+「option」+「w」
Storyboard
表示領域の移動
スクロールビューがアクティブになっていないことを確認して、2本指スワイプ
スクロールビュー内のスクロール
静的テーブルなどをスクロールさせるときはテーブルビュー内のオブジェクトをアクティブにして2本指でスワイプ
重なったオブジュエクトの中から選択
「shift」+右クリックでオブジェクトの一覧がでるので、下の階層のビューも簡単に選択できます。
検索
Storyboard左にあるOutlineの下に検索窓があります。
たくさんViewControllerができてしまうと、最小化してもなかなか目的のViewControllerにたどり着けません。そこで、検索窓に部分文字列を入れるとすぐにたどり着けます。
改行の入力
UITextViewなどに複数行の文章を入力する時の改行入力:「option」+「return」
デバッグ
デバッグ実行時に専用画面を開く
XcodeのPreferenceでBehaviorsのRunning-Pausesを設定します。
「Show tab named」にチェックをいれて「Debug」とタブ名を指定しておくと、デバッグ実行時に停止する時は常に「Debug」タブが開いてそこに停止した部分のソースコードが表示されます。
単純ミスや、デバッグで追いかけていて間違いに気付いた時など、 ついつい、このタブで修正してしまってタブの意味が無くなってしまうことがありますが、意識して使い分けるととても便利です。全く関心のないmain.mのコードや実行停止した箇所のコードは必ず「Debug」タブで開くことになるので、タブ移動ですぐに編集中のコードに戻ることができます。
OS Xのショートカット
移動
- ソースのトップに移動:「⌘」+「↑」
- ソースの最下部に移動:「⌘」+「↓」
※ 長いソースファイルの中で現在位置に戻る必要がある場合は、「control」+6でメソッド一覧を使ってソースのトップや最下部に移動した方が、「control」+「shift」+「←」で戻れるので便利です。
コピー&ペースト
- コピー:「⌘」+「c」
- ペースト:「⌘」+「v」
- カット:「⌘」+「x」
その他
- 右のデスクトップに移動:「control」+「→」
- 左のデスクトップに移動:「control」+「←」
- Spotlight検索:「control」+「space」
- 日本語入力モードでタイプしてしまったものをアルファベットに変換:英数 2回押し
UNIX系のショートカット
削除
- カーソルの右側の単語を削除:「option」+「fn」+「delete」
※コピペして入力補完する時に便利
- カーソルの左側の単語を削除:「fn」+「delete」
- カーソルから行末(改行の手前)まで削除:「control」+「k」
移動
- 行の先頭に移動:「control」+「a」
- 行の末尾に移動:「control」+「e」
- 前の行に移動:「control」+「p」
- 次の行に移動:「control」+「n」
※入力補完リストから目的のシンボルを選ぶ時にこのショートカットを使うと、右手を矢印キーまで持って行かずに、ホームポジションのまま操作できるので便利です。
関連記事
- 2012/07/02 Xcodeでリリース用のモジュールを作ってテストする方法
- 2012/07/05 Xcodeでデバッグ時に役に立つエラー処理