ios – UITextView和神秘的缺失空间

我有一个应用程序与一些UITextViews各种大小.看起来如果一个UITextView足够小的font.pointSize足够高,没有办法在文本大到足以填充文本视图之后添加一个空格.

例如:

我试图弄清楚这里发生了什么,我开始输入我通常的调试字符串,我键入“什么”命中空格键,没有空格出现(但这是平常的).我键入了“the”,看起来就像是在上一个单词的末尾被粘在一起.果然没有空间.我可以回去添加空间,一旦我添加了空格,我可以添加其他空格,因为文字换行然后变得有效.

另一个神秘的行为是当你双击空格时,它不会添加一个句点到最后.它用一个句点代替最后一个字符.所以,“什么”的空间变成“哇”.

现在,我正在做一些有趣的事情,字体大小就像我自动调整字体大小,以便文本填充合理范围内提供的空间,但是当我禁用它,我仍然可以重现的行为.唯一的区别是,这个词不是适合一行,而是包裹在下一行.

例如,如果我在第一行输入“什么”空格“它出来的”什么“与”什么“,第二行上的”“”(虽然我只能看到“the”的顶部.此外,这里是textViewDidChange的一些日志信息.

Character    textView.text.length
---------    --------------------
W            1
h            2
a            3
t            4
<space>      4
t            5
h            6
<space>      7    <----  Here's a wierd one . . . now spaces all
?            8           work fine unless it's resizing

解决方法

Another mysterious behavior is that when you double tap space,it
doesn’t add a period to the end. It replaces the last character with a
period. So,“What” + space + space becomes “Wha.”

那不是神秘的.这意味着您的UITextView使用自动更正.
固定:

UITextView *txtView; // your UITextView
[txtView setAutocorrectionType:UITextAutocorrectionTypeNo];

关于空格…因为空间不是一个可绘制的符号,你的UITextView不能测量是大小(宽度不同的对齐方式),所以你的UITextView的contentSize属性将不会改变和行为神秘.您应该手动设置contentSize(您可以使用sizeWithFont:method轻松计算NSString的大小).

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...