Xcode は#region
、任意のコードを折りたたむための Visual Studio スタイル ディレクティブに似たものをサポートしていますか?
8 に答える
いいえ、Xcodeで定義されたさまざまなスコープレベルでのみコードを折りたたむことができます。
ただし、ちょっとしたトリックを使用して、機能メニューからの移動を簡単にすることができます。
#pragma mark
マークに続くラベルが機能メニューに表示されるグループを作成できます。ラベルがハイフンの場合、セパレータが機能メニューに挿入されます。
また、コメント内の次のラベルが機能メニューに表示されます。
// MARK:
// TODO:
// FIXME:
// !!!:
// ???:
明らかに、#pragmaマークは実際には移植性がないため、移植性のあるアプリケーションを構築していて、理解できない#pragmaディレクティブを無視しないコンパイラーで動作する必要がある場合は、コメントスタイルのマークが適切です。別。
私はこれのために地獄に行くつもりですが、ここに行きます:
特定のファイルの先頭に、
#define FOLD 1
何かを折りたたむ場合は、次のようにifブロックでラップします。
if(FOLD) {
// your code to hide
// more code
}
それはあなたが見えないようにそれを折りたたむことを可能にします。
これは、最も必要な場所、つまり関数またはメソッドのグループの周りでは機能しません。
内部条件やループのない長い線形メソッドの中で役立つかもしれませんが、そのようなメソッドは一般的な Mac OS X UI コードでは一般的ではありません。もの。
また、if(fold) はまったく不要です。メソッドまたは関数内で中括弧を使用するだけで、Xcode はそれらを折りたたみます。
この方法を試してください:
//region title1
{
//region Subtitl1
{
}
//region Subtitl2
{
}
}
それはそのようにすることができます:
希望のコードを括弧 { } 内に入れると、折りたたみゾーンになります。
ただし、括弧は変数のスコープも定義することに注意する必要があるため、このコードには、これらの括弧の外で使用される変数宣言を含めないでください。
私が見つけた1つの素晴らしい解決策:
プロジェクトを 1 つの大きな名前空間に配置します。ソース ファイルの個々のセクションについて、この名前空間を閉じてから再度開きます。
namespace myproj { // members of class MyClassA
void MyClassA::dosomething()
{
}
void MyClassA::dosomethingelse()
{
}
} // members of class MyClassA
namespace myproj { // members of MyClassB
void MyClassB::dosomething()
{
}
void MyClassB::dosomethingelse()
{
}
} // members of MyClassB