设计自定义NSTextView

时间:2011-10-06 05:31:12

标签: cocoa nstextview

我需要设计一个自定义文本视图,显示我的应用程序生成的日志。日志具有特定的打包二进制格式,每个条目除了实际字符串(日志级别,日期,源)之外还包括许多字段。现在这些日志可能是巨大的,数百兆字节的数据。我需要实现基于消息类型/源,搜索,内存布局控制等所有快速过滤的功能。由于NSTextView支持大多数这些功能,我决定从那里开始。

我显然需要我的自定义文本存储来提供对我的压缩日志格式的访问,以便在用户滚动日志视图窗口时按需加载新字符串。我还需要根据当前活动过滤器(例如仅显示警告)选择性地显示日志行,而无需再将整个文本重新加载到视图中,只需在显示时过滤掉行。

我查看了NSTextStorage,它建议重载-string,这并不完全符合目的。有谁可以请指点我的进一步研究?我对cocoa的文本处理相对较新。

1 个答案:

答案 0 :(得分:0)

不是您问题的直接答案,而是Apple可能的替代品:

为什么不像Console.app那样使用正确的系统日志呢?每个日志条目(尽管可能是多行)以非常特定的格式开始。 Console.app使用大纲视图(如果行对于表行来说太长,则条目具有子行,以使所有条目保持相同的大小以便于阅读)。在标准日志下的/Applications/Utilities/Console.app中查看。

好处:简单选择整个条目,非常简单的搜索过滤,交替的行颜色使单个条目更容易看到,如果你没有,可以使用变量行高来显示整个消息像截断/披露方法。