2010-04-03 85 views
1

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

回答

2

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

是的。

还是有更高效的选择?

没有,假设“效率”包括您自己的时间和精力权衡功能设置要支持,可可的文字系统确实很多你,你会被扔掉,如果你滚你拥有。

一些例子:

  • 撤消支持
  • 高级编辑(emacs的键)
  • 支持输入经理/输入法
  • 支持所有Unicode的
  • 鼠标选择
  • 键盘选择
  • 多选
  • 字体
  • 颜色
  • 图片
  • 听起来
  • 查找
  • 查找和替换
  • 拼写检查
  • 语法检查
  • 文本替换
  • 无障碍

如果你推出自己的产品,你会花费几个月的时间重新开发和调试一些,如果不是大多数(如果不是全部)那些车轮。我称之为效率低下。

与此同时,您已经拥有的文字系统几乎都是快速的。你需要长长的线条(或者许多嵌入的图像/声音)的巨大文本来阻止它。

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

除非用户打算一次输入所有这些数据,否则我不会看到这会导致性能问题。 0%CPU×N或N-1视图= 0%CPU。

可能有一个问题是内存使用情况,如果文件都很大。他们必须两者都处于极端,因为现在即使是一个普通的Mac也有1吉比特的内存,文本也不重要。

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

+0

谢谢。我有一种感觉,我是过度思考的事情 – Bret 2010-04-05 14:56:07

1

NSTextView可能是最简单的方法,如果你想获得大量免费的漂亮功能。它不能做任何事情,但这是一个非常棒的开始。

+0

谢谢,这只是我一直在阅读你应该如何避免为提高效率而创建太多NSView的子类。 – Bret 2010-04-03 22:05:09

+2

user308444:要么你没有看到上下文,要么就是错误。除开发人员时间以外,子类除了开发人员时间以外不需要花费任何成本,除非您(1)在早期iPhone-OS硬件上运行或(2)创建数千个实例。更不用说,当您使用NSTextView时,您不会创建NSView的子类;实际上,任何“更有效的选择”都可能是一个新的子类。更重要的是,正确的顺序是写入,然后配置文件,然后进行优化。优化首先会导致错误的决策和不必要的复杂代码。 – 2010-04-04 05:42:34