Cocoa - 在标签之间插入文本

时间:2010-09-16 15:41:58

标签: html cocoa tags nsstring

我想知道如何在Cocoa中的HTML标签之间插入文本。我在NSTextView中显示源代码 - 例如:

<html>
<head>
<title>test</title>
</head>
<body>hello!</body>
</html>

上述代码的大小可能会有所不同,但如果我想在<link rel="apple-touch-icon" href="webclip.png" />代码之间的任何位置插入<head>说明,该怎么办?

编辑:为了澄清,我不是在研究如何在NSTextView中插入文本,而是在如何在文本视图中已有的头标记之间插入文本。我正在开发一个HTML编辑器。

谢谢! :)

2 个答案:

答案 0 :(得分:1)

之前没有编写HTML编辑器,我不完全确定最佳方法。但是,您显然需要一些解析HTML的方法。既然你正在使用Cocoa,那么你有几个选择。

  • NSXMLParser这是一个SAX风格的事件驱动解析器。实现NSXMLParserDelegate,其中包含在解析器遇到各种XML组件(元素,属性,文本等)时调用的方法。
  • NSXML这是一个基于树的XML解析器,我不确定它与HTML有多好。但是,它确实具有能够运行XPath查询的优势,当您查找特定元素时,这些查询非常有用。
  • libxml这是一个C库,其运行水平远低于Cocoa。然而,它是迄今为止三者中最有能力的。它既可以在事件驱动模式下工作,也可以在面向树的模式下工作。此外,它还具有特定于HTML的功能。不幸的是,使用它并不友好。你会发现自己在C字符串和NSString对象之间投入很多东西。
    但是,我已经在iOS应用程序中广泛使用了libxml来解析XML,一旦你习惯了C,它就可以很好地工作了。风格的界面。我确信它在Mac OS X上的效果也很好。这可能就是我为你的问题所推荐的。

答案 1 :(得分:0)

text view拥有text storage,这是一种mutable attributed string。您可以使用要插入的字符串replace一个空范围插入它。

当然,您需要解析HTML以确定 where 以插入它。