我正在创建一个 Cocoa 应用程序,其中一个视图将包含当前加载文档的“十六进制转储”。到目前为止,我一直在使用沼泽标准(而且非常不吸引人)NSTextField
,但我现在正在寻找更强大的东西。
我非常0xED.app
喜欢并且很想复制它的主要“十六进制转储”视图。我该怎么做呢?
我不一定喜欢吸引眼球,而是能够在不选择偏移量或文本列的情况下选择一系列字节。我什至不知道从哪里开始有效地实施这一点。当然这不是在空白画布上绘制的吗?
我正在创建一个 Cocoa 应用程序,其中一个视图将包含当前加载文档的“十六进制转储”。到目前为止,我一直在使用沼泽标准(而且非常不吸引人)NSTextField
,但我现在正在寻找更强大的东西。
我非常0xED.app
喜欢并且很想复制它的主要“十六进制转储”视图。我该怎么做呢?
我不一定喜欢吸引眼球,而是能够在不选择偏移量或文本列的情况下选择一系列字节。我什至不知道从哪里开始有效地实施这一点。当然这不是在空白画布上绘制的吗?
我的猜测是它可能是使用NSTableView或它的子类来完成的。
以这种方式完成正确的文本选择可能有点棘手,但它可能是可能的。
要开始并了解事情的基本原理:
对于大量数据,这种方法会很慢,但可以很好地处理实现 NSView 子类。之后,您将希望通过实现比一次绘制一个字符串的重复调用更好的方法来提高绘图性能。您还需要实现对 mouseDown: 和 keyDown: 等方法的覆盖,以处理来自用户的输入以允许选择字节范围等操作。
这应该让你开始,一旦你开始了,我建议你提出后续问题。
如果你想看看 Cocoa 接口是如何构建的,你可以使用NibToXibConverter。
双击 XIB 以在 XCode 中打开它,您可以看到它们是如何构造的