【问题标题】:NSTextView - drawing custom glyphs that can't be editedNSTextView - 绘制无法编辑的自定义字形
【发布时间】:2011-01-21 15:16:36
【问题描述】:

我正在使用 NSTextView 制作大纲。 NSTextView 上的 outline: 方法并不能完全捕捉到我需要的东西,所以我使用排版器/格式化器推出了自己的方法。现在,我需要在每个线段旁边显示轮廓符号。您如何以用户无法编辑的方式绘制这些符号?有什么想法吗?

感谢您的宝贵时间!

编辑

我不希望光标甚至能够越过轮廓符号(符号如 •、i、1 等)。我想我需要绘制无法选择的自定义线段。或者可能覆盖一些其他绘制符号的视图。我什至可能想要这些轮廓符号旁边的符号可以折叠轮廓元素。我更多的是寻找架构解决方案而不是特定方法。

【问题讨论】:

    标签: objective-c cocoa macos text nstextview


    【解决方案1】:

    使用 NSTextView 委托方法 -textView:shouldChangeTextInRange:replacementString: 并以 NO 响应您的不可编辑范围。

    基于 cmets 的更新

    为什么不使用文本容器的边距,然后使用 NSTextView 的 -drawViewBackgroundInRect: 在边距中绘制 UI 元素?

    【讨论】:

    • 对,但是你如何绘制实际的轮廓符号,使光标甚至无法击中它们。这是手头的真正问题。我认为他们需要在自己的框架或其他东西中绘制。
    • 啊。我明白你的意思了。更新我的答案。
    • 如果我把它画在背景中,我可以放置可点击的折叠三角形吗?
    • 您可以将子视图添加到文本视图中,这是肯定的。但是他们会自己画,所以如果这就是你想要画的,那么你就走错了路。 :-) 如果它是您想要的交互式控件,请将其添加为子视图并管理其位置。但保留保证金建议 - 你需要房间。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 2010-12-29
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多