简而言之,我不需要原始文本,甚至不需要富文本。我想加载一个 xml 文档,其中包含文本部分的元数据,并且当我单击给定的文本部分时,我想在抽屉中显示该元数据。超链接就是一个很好的例子;在网络应用程序中这显然是微不足道的,但是虽然我对 mac 开发没有那么丰富的经验,但我似乎找不到一种简单的方法来使用 cocoa 来完成此任务。
关于总体策略有什么建议吗?界面生成器中似乎没有内置 HTML View ,否则我会弄乱它。
最佳答案
我不太清楚你想做什么。 听起来就像您想要加载 XML 文档、显示文本并在选择某些文本位时显示各种元数据。
如果是这种情况,您应该阅读 Cocoa Text System 。 NSTextStorage
类是 NSMutableAttributedString
的子类,您可以将任意属性应用于任何范围的文本。当选择发生变化时,您可以获得所选范围内的属性并使用它来更新抽屉。 (顺便说一句,抽屉确实已经过时了。我建议采用不同的用户界面。现在基于 NSSplitView
的界面更加流行。)
当然,要构建 NSTextStorage
,您需要使用 NSXMLDocument
或 NSXMLParser
解析 XML,但您可以获得更多控制,它看起来会更“像 cocoa ”。
您可以使用 WebView
,它是 Safari 渲染器,但我认为您很难让它按照您想要的方式显示文本。 Safari 在没有 XSLT 的情况下渲染 XML 方面一直表现不佳。
关于Cocoa:创建自定义 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1492177/