问题标签 [nstextcontainer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1192 浏览

objective-c - 多个 NSTextView 之间的顺序选择

我有一堆NSTextViews 我想分享一个选择。我基本上希望它的行为类似于在网页上选择文本,其中有多个文本视图,但您可以拖动以在其中顺序选择文本。

我发现这个文档指出可以让多个NSTextContainer对象共享一个对象NSLayoutManager,从而共享选择。NSLayoutManager这是我想要的一半,除了一个只能有一个NSTextStorage对象的事实。我希望每个文本视图都有自己的NSTextStorage,以便每个文本视图都可以有自己的文本,但我仍然希望能够通过一次拖动在多个文本视图中选择文本。这可能吗?

0 投票
1 回答
400 浏览

macos - 在 NSTextView 中围绕子视图布置文本

我想要做的是拥有一个 NSTextView 并向其添加自定义 NSView 子视图,但拥有它以便文本可以围绕子视图布局。

现在,我可以轻松地将子视图添加到文本视图,但当然,它进入文本视图并且文本不知道子视图,所以它只是在子视图上方/下方运行。当然不是我想要的。

所以我希望能够至少在“块”中添加我自己的视图(比如当 HTML 元素是块元素时,所以它在自己的行上),也可能是“内联”(即子视图与文本一致,就像 HTML 元素如何内联一样)尽管这不是绝对必需的。

我不太清楚如何使这项工作。我看到可以将内容添加到文本视图的唯一方法是使用文本附件,但这些似乎仅归入图像/文件,并且仅在不包含(据我所知)任意 NSView 的 NSCell 中。

我觉得这应该是可能的,我从哪里开始?

0 投票
0 回答
194 浏览

cocoa - Cocoa NSTextContainer:如何在间隙后保持空白?

我通过覆盖 NSTextContainer 的“lineFragmentRectForProposedRect”并返回一个剩余矩形来创建文本间隙。

这总体上有效,但我不希望文本容器的“remainingRect”部分在矩形的开头隐藏空格。有人知道阻止这种行为的方法吗?

例如:“你好世界!” 作为文字文本,当由“Hello”和“World!”之间的任何地方开始的间隙分隔时,间隙的右侧将在“World!”之前没有空格,例如,如果间隙是宽度一个字符,并在“Hello”之后开始,那么结果将看起来像“Hello World!”。

0 投票
1 回答
1808 浏览

ios - '-[UITextView autocapitalizationType]:无法识别的选择器发送到实例?

我想在单击按钮时创建 uiview 的自定义子类(SubCustomView),并在 SubCustomView 上添加 uitextview 类作为子视图。当我启动 uitextview 我使用initWithFrame:textContainer:方法。当我使用这种方法时,项目崩溃了。当我使用initWithFrame:方法时,项目不会崩溃。我正在使用以下代码:

错误是:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UITextView setKeyboardAppearance:]: unrecognized selector sent to instance 0x93ab000”

首先抛出调用堆栈:

0 投票
0 回答
228 浏览

cocos2d-iphone - iOS 7 UIKit NSTextContainer initWithSize:(CGSize)大小冲突

我最近将我的 xcode4.6 升级到 5.0,但我遇到了不知道如何解决的冲突问题。

我正在使用 cocos2d 库,其中的 CCGrid 文件正在使用 UIKit 框架。

现在提示NSTextContainer initWithSize:(CGSize)size 的UIKit 函数冲突,导致cocos2d 的CCGrid 文件出错。

注意:Cocos2d CCGrid 到现在都使用了ccGridSize 类型的参数,但是现在提示冲突。

请建议。

0 投票
0 回答
128 浏览

ios - 使用 UITextView

我正在尝试创建一个包含 3 行字符串的文本视图。随着用户的工作,字符串将更新并变宽,高度(行数)将保持不变。通读文档我知道容器的大小不能改变,它是只读的。

我有将文本放入 UITextView 的文本属性的代码,但它不会向右或向左滚动文本。我尝试将 UIView 插入 textview 并相信这会起作用,但似乎不是解决这个问题的方法。我有点想我需要一个自定义的 UITextView 类和一个自定义的 NSTextContainer。想知道方向正确吗?任何帮助表示赞赏。

谢谢,杰夫

0 投票
3 回答
5697 浏览

ios - 在我以编程方式实例化的 UITextView(使用 NSTextContainer 初始化)中,.text 属性始终为 nil

[在底部更新了解决方案和工作代码]

在 -viewDidLoad 我分配,initWithFrame:

将 myTextView 添加到子视图

设置一些基本属性(对齐方式、背景颜色、文本颜色等)

设置默认文本

.text 没有出现。myTextView 出现(由背景颜色表示),设置断点,它有一个框架,内存等。一切看起来都正确。myTextView 看起来不错,但 .text 为零。我改变它,设置它,更新它。不管 .text 保持为零。

我一遍又一遍地阅读文档。没有提到我没有做的任何事情。我不知所措。帮助。

在@interface MyController()...

过去一切都是(弱),但我把它调高(强)以防万一。没有骰子。

在 viewDidLoad...

[更新:解决方案]

当使用 NSTextContainer 分配/初始化 UITextView 时,您还需要分别初始化 NSLayoutManager 和 NSTextStorage 以使 .text 粘贴。

这是更新的工作代码

0 投票
2 回答
3628 浏览

ios - 为 UITextView 中的文本获取 CGRect 以使用 CALayer 突出显示

我试图在 UITextView 中绘制一个透明的 CALayer,以便在搜索中突出显示匹配的文本。

我已经找到了正确的方法,但仍然没有找到正确的坐标。我需要找到文本容器的来源。现在,我得到了 textView 的原点,并以此偏移了图层的原点:

如果我移动文本字段,或者我不将偏移量除以 2,我会得到以下结果: 图层框关闭

我想知道我是否走在正确的轨道上,如果是的话,如何找到 NSTextContainer 对象的来源。

0 投票
1 回答
2410 浏览

ios - 使用 CALayer 突出显示跨越多行的 UITextView 中的文本

这是为UITextView 中的文本获取 CGRect 的延续,目的是使用 CALayer 突出显示。我无法为每个线段中的范围获取正确的矩形。

这是我目前的尝试。我基本上使用 enumerateLineFragmentsForGlyphRange:usingBlock: 来循环遍历每一行。然后我使用 enumerateEnclosureRectsForGlyphRange:withinSelectedGlyphRange:usingBlock: 来确保当前行上的文本范围与行的范围匹配并且具有相同的 Y 坐标。有时这有效,有时则无效。

似乎如果搜索文本接近返回,它会突出显示。(y坐标)。

高光已关闭。 似乎是关闭的Y坐标

在此屏幕截图中,应该突出显示“返回生成的字符范围”。

如果文本不在返回或空格附近,这似乎可以正常工作:

如果文本周围没有空格,则工作正常

我错过了什么吗?

更新:

我已经将问题缩小了一点,我相信 enumerateLineFragmentsForGlyphRange: usingBlock: 正在跳过有返回的行。

0 投票
1 回答
286 浏览

ios - 在 iOS 中将 textstorage 与 textcontainer 一起使用时,UITextView 变得无法选择

我正在尝试显示NSAttributedStringUITextView. 我用过NSTextStorageNSLayoutManagerNSTextContainer。但是发生的事情UITextView变得无法选择。当我尝试选择时,我找不到任何选择或复制粘贴选项。

我给了textview.selectable=YES

我使用了具有相同文本存储的多个文本视图。是这个问题的原因吗??还是我必须启用其他任何东西???