これは長ったらしい説明かもしれませんが、十分ではないというよりも、言いすぎたほうがいいでしょう。一言で言えば、一連の積み重ねられた textViews をプログラムで単一の scrollView に埋め込む必要があり、それを機能させることができません。ドキュメント内のテキスト アーキテクチャのサンプル コードに基づいて作業を進めています。
プログラムで十分にテキストビューを作成できますが、スクロールビュー内に2つ作成して、それらを1つとして移動して編集可能にすることはできません。同じ基本概念を使用してページネーションを作成する方法を説明する素敵な小さな図がありますが、付随するコードはなく、自分でそれを行うことに成功していません. これまでに編集できるのは 1 つだけですが、重なっている textView の悲しい小さなコラージュを作成しました。
また、これを達成するための標準的な方法がある場合は、正しい方向へのナッジが最も高く評価されます。
これが私のコードです:
float w = self.windowView.frame.size.width;
float h = self.windowView.frame.size.height*.5;
NSSize halfSize = NSMakeSize(w,h);
textStorage = [[NSTextStorage alloc]
initWithString:@"Here's to the ones who see things different."];
NSLayoutManager *layoutManager;
layoutManager = [[NSLayoutManager alloc] init];
[textStorage addLayoutManager:layoutManager];
NSTextContainer *textContainer;
textContainer = [[NSTextContainer alloc]
initWithContainerSize:halfSize];
[layoutManager addTextContainer:textContainer];
NSTextContainer *textContainer2;
textContainer2 = [[NSTextContainer alloc]
initWithContainerSize:halfSize];
[layoutManager addTextContainer:textContainer2];
self.windowView = [[NSTextView alloc]
initWithFrame:_windowView.frame
textContainer:textContainer];
[self.window setContentView:_windowView];
[self.window makeKeyAndOrderFront:nil];
[self.window makeFirstResponder:_windowView];
NSTextView *textView = [[NSTextView alloc]init];
[textView setTextContainer:textContainer2];
[self.windowView addSubview:textView];
[textView setFrameSize:halfSize];
NSPoint thePoint = NSMakePoint(0, self.windowView.frame.size.height);
[textView setFrameOrigin:thePoint];
[textView setEditable:YES];
[textView setNeedsDisplay:YES];
私は言及する必要があります。私は熱心なプログラマーですが、決して有能なプログラマーではありません。完全独学。(まあ、実際に私が買った本は教えのほとんどをしました)。Hillegrass の Cocoa Programming for Mac OSX を終えたばかりで、ボールを転がすために少し個人的な学習プロジェクトに取り組んでいます。シーンの見出し、説明、ダイアログ、文字などをさまざまな方法でフォーマットし、ブロックの上に立つとその特定のセグメントに関する情報 (シーン情報) が表示されるように、各セクションに多数の情報を添付する脚本アプリを作成したいと考えています。
私は必要なものすべてをテストするためのミニ アプリを作成してきました。これまでのところ、ドキュメントのテキスト属性ガイドとテキスト レイアウト ガイドを読み、多くのことを理解しました。ほとんどすべてに Core データとバインディングを使用していますが、間違いなくアプリの最も重要な部分に行き詰まっています。メインの scrollView を取得して、アプリの他の部分から個別にアクセスできる、さまざまなスタイルのテキストの積み重ねられたブロックを表示します。(私の考えでは、NSTextViews の配列を作成し、現在のインデックスを使用して情報項目の配列を特定のブロックにリンクしますが、これはバインディングのような仕事のように感じます。)
前もって感謝します!
- オマール