InterfaceBuilderから関連づけができないとき

こないだInterfaceBuilder(以下IB)上で、あるxibファイルから該当のヘッダファイルにいつの間にやら関連付けができなくなっているファイルがあることに気づいた。

ここでいう関連付けというのは、IB上のボタンをctrlキーを押しながらアシスタントビューで表示しているヘッダファイルにドラッグでもっていき(線を結び)、そこに記述された変数と関連付けることを指す。

 

なんだろうと思って色々ファイルを見ていたのですが、原因はファイル名を変更したことにあった。

 

正確にはそのファイル名の変更の仕方に問題があったのだが、そのときのファイル名の変更手順としては

1)左側のプロジェクトナビゲータにて、ヘッダファイル、ソースファイル、xibファイルの名前を変更

2)左側のサーチナビゲータにて、プロジェクトに含まれる元ファイル名をすべて変更したファイル名に置換する

これでこれまでと同様の動作をするのですが、このままだと上記のように関連付けができなくなってしまっている。

正しく関連付けできるようにするには、xibファイル内のソースの中身にある元ファイル名も変更したファイル名に修正しなくてはいけない(プロジェクトナビゲータのxibファイル上で右クリック→"Open As"→"Source Code"でxibファイルの中身はみれる)。

 

ただしそもそもは上記のファイル名の変更の仕方に問題があって、ファイル名の変更については以下の方法でやれば上記のような対応はなくなる。

 

http://sazameki.jp/translations/xcode4/IDEs/Conceptual/Xcode4TransitionGuide/Refactoring/Refactoring.html

 

手短に言えば、"Edit"→"Refactor"→"Rename..."でXcodeリファクタリング機能で行う。