我有一个应用程序,其中包含少量UITextView
个不同大小的应用程序。似乎如果UITextView
足够小,font.pointSize足够高,则在文本足够大以填充文本视图后,无法添加空格。
例如:
我正在试图弄清楚这里发生了什么,我开始输入我常用的调试字符串,我输入“What”命中空格键并且没有空格出现(但这是常见的)。我键入了“the”,看起来就像是在前一个单词的末尾添加了。果然,没有空间。我可以回去添加空间就好了,一旦我添加空间,我可以添加其他空格作为自动换行然后生效。
另一个神秘的行为是,当您双击空间时,它不会添加句点到最后。它用句点替换最后一个字符。所以,“什么”+空间+空间变成“什么”。
现在,我正在使用字体大小做一些有趣的事情,比如我自动调整字体大小,以便文本填充合理范围内提供的空间,但是当我禁用它时,我仍然可以重现行为。唯一不同的是,不是在一行上拟合,而是包裹到下一行。
例如,如果我输入“What”+ space +“the”,它会出现“Whatthe”,第一行带有“What”而第二行带有“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
答案 0 :(得分:1)
另一个神秘的行为是当你双击太空时,它 没有添加句号到最后。它用a替换最后一个字符 期。所以,“什么”+空间+空间变成“什么”。
这并不神秘。这意味着您的UITextView
使用自动更正。
修正:
UITextView *txtView; // your UITextView
[txtView setAutocorrectionType:UITextAutocorrectionTypeNo];
关于空格......由于空格不是可绘制的符号,因此UITextView
无法衡量的是尺寸(宽度因对齐而不同而不同),因此您的UITextView
contentSize
财产不会改变,行为神秘。您应手动设置contentSize
(您可以使用NSString
方法轻松计算sizeWithFont:
的尺寸。