基于Cocoa的文本编辑器的选项

时间:2010-04-03 20:06:00

标签: cocoa

我正在研究基于可可的文本编辑器。我应该基于NSTextView还是有更高效的选择?请记住,我计划支持标签,以便可以同时打开许多编辑器。

2 个答案:

答案 0 :(得分:2)

  

我正在研究基于可可的文本编辑器。我应该基于NSTextView

  

还是有更有效的选择?

不,假设“效率”包括你自己的时间和精力与你想要支持的功能集权衡 - Cocoa的文本系统为你做了很多,如果你把它扔掉了滚动你自己。

一些例子:

  • 撤消支持
  • 高级编辑(emacs键)
  • 支持输入管理器/输入法
  • 支持所有Unicode
  • 鼠标选择
  • 键盘选择
  • 多项选择
  • 字体
  • 颜色
  • 图片
  • 声音
  • 查找
  • 查找和替换
  • 拼写检查
  • 语法检查
  • 文字替换
  • 辅助

如果你自己动手,你可以花几个月重新发明并调试一些(如果不是全部的话)这些轮子。我称之为效率低下。

与此同时,你已经拥有的文本系统几乎一直都很快。你需要长行的大文本(或者很多嵌入的图像/声音)才​​能让它陷入困境。

  

请记住,我计划支持标签,以便可以同时打开许多编辑器。

除非用户要同时输入所有这些内容,否则我不会看到这会导致性能问题。 0%CPU×N或N-1视图= 0%CPU。

如果文档既有很多又有大,那么可能出现问题的地方就是内存使用情况。他们必须处于极端状态,因为即使是现在的普通Mac也只有1 GiB的内存,而且文字的重量也不大。

如果是这种情况,那么您只能将N个最近使用的未修改文本保留在内存中,否则只记住选择范围的数组。但99%的时间,将文本交换进出的费用远比将它们全部留在内存中要贵得多。

答案 1 :(得分:1)

如果您想免费获得大量优秀功能,NSTextView可能是最简单的方法。它不能做所有事情,但这是一个很棒的开始。