1

这可能是一个冗长的解释,但我宁愿说太多也不愿说不够。简而言之,我需要以编程方式将一系列堆叠的 textViews 嵌入到单个 scrollView 中,但我无法让它工作。我的工作基于文档中的文本架构示例代码。

http://developer.apple.com/library/mac/#documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextSystemArchitecture/ArchitectureOverview.html

我可以很好地以编程方式创建一个 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 的 Mac OSX 可可编程,我正在做一些个人学习项目来让事情顺利进行。我想制作一个编剧应用程序,它以不同的方式格式化场景标题、描述、对话框、字符等,并将一堆信息附加到每个部分,以便站在一个块上可以显示有关该特定片段的信息(场景信息)。

我一直在制作迷你应用程序来测试我需要的所有内容,到目前为止,我已经阅读了文档中的文本属性指南和文本布局指南,并了解了很多。我对大多数事情都使用核心数据和绑定,但我被困在可以说是应用程序最重要的部分。让主 scrollView 显示堆叠的不同样式文本块,应用程序的其他部分可以单独访问这些块。(我的想法是创建一个 NSTextView 数组并使用当前索引将一组信息项链接到特定块,尽管我一直认为这感觉像是一种绑定工作。)

提前致谢!

  • 奥马尔
4

0 回答 0