objective-c - 在 NSTextView 中为行片段重绘单个矩形

标签 objective-c cocoa macos nstextview nslayoutmanager

我们有一个 NSTextView,需要在某些事件上重绘单行片段。

本质上,它是一个大纲。因此,当特定行收到“tab out”消息时,我们希望移动包含字形的矩形,而不仅仅是插入 tab 键。

关于如何实现这一目标有什么想法吗?

谢谢!

最佳答案

我看过这个以寻求任何建议,但似乎没有人接受。

如果我理解正确的话,我强烈建议你不要尝试搞乱 TextView 的绘图例程,尤其是当 Cocoa 文本系统在如此多的级别上有如此多的钩子(Hook)时?

这本质上是一个段落级格式问题,不是吗?为什么不直接设置段落的 NSParagraphStyle ?您可以通过设置其 headIndent 来完成此操作,它是用户语言扫描路径(从左到右、从上到下等)开始之前的边距。

您可以使用 NSTextView 的 -textView:doCommandBySelector: 拦截 -insertTab: 和 -insertBacktab:委托(delegate)方法并以此为提示来修改段落样式以缩进到您想要的程度。

关于objective-c - 在 NSTextView 中为行片段重绘单个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4240419/

相关文章:

macos - 非 cocoa 应用代表

objective-c - 如何在 mac os View 或其 subview 获得焦点时处理事件?

iphone - 如何平铺 CALayer 的内容?

bash - 使用 bash 脚本时 ffmpeg 输入文件名的问题

ios - 如何使用多个 AVVideoCompositions 合成视频

ios - 当多个对象在iOS中调用函数时,如何等待函数完全执行?

iphone - 一个 XIB 文件中的多个 View (一个窗口)

objective-c - 在 Objective C 中测试类的加载

iphone - 这些位掩码实际上是如何工作的?

objective-c - 使用什么来代替 QTCaptureDevice?