在Scroll View中定位堆叠的NSTextView子视图

时间:2012-12-15 07:58:46

标签: objective-c nstextview nsscrollview subviews

这可能是一个冗长的解释,但我宁愿说太多也不够。简而言之,我需要以编程方式在一个scrollView中嵌入一系列堆叠的textView,我无法使其工作。我的工作基于文档中的Text Architecture示例代码。

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

我可以以编程方式创建一个textView,但是我不能在滚动视图中创建两个并让它们作为一个移动并且可以编辑。有一个很好的小图解释了如何使用相同的基本概念创建分页,但没有附带的代码,我自己也没有成功。我制作了一个重叠的textViews的悲伤小拼贴,到目前为止只有一个是可编辑的。

此外,如果有一种标准的方法来实现这一点,那么在正确的方向上轻推将是最受欢迎的。

这是我的代码:

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可可编程,我正在进行一些个人学习项目以获得成功。我想制作一个编剧应用程序,以不同的方式格式化场景标题,描述,对话框,字符等 将一堆信息附加到每个部分,以便站在一个块上将显示有关该特定部分的信息(场景信息)。

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

提前致谢!

  • 奥马

0 个答案:

没有答案