【问题标题】:UITextView and the Mysterious Missing SpaceUITextView 和神秘的缺失空间
【发布时间】:2013-01-21 03:48:00
【问题描述】:

我有一个应用程序,其中包含一些大小不一的UITextViews。看来如果UITextView 足够小,font.pointSize 足够高,那么在文本足够大以填充文本视图后,就无法添加空格。

例如:

我试图弄清楚这里发生了什么,我开始输入我通常的调试字符串,我输入了“What”并按下了空格键并且没有出现空格(但这很常见)。我输入了“the”,看起来它就被贴在了前一个单词的末尾。果然,没有空位。我可以回去添加空格就好了,一旦我添加了空格,我可以添加其他空格作为自动换行然后生效。

另一个神秘的行为是,当你双击空格时,它不会在末尾添加句点。它用句点替换最后一个字符。所以,“What”+空格+空格就变成了“Wha”。

现在,我正在对字体大小做一些有趣的事情,比如我正在自动调整字体大小,以便文本填充合理范围内提供的空间,但是当我禁用它时,我仍然可以重现该行为。唯一的区别是,单词不是放在一行,而是换行到下一行。

例如,如果我输入“What”+空格+“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

【问题讨论】:

  • 你在Apple Bug Reporter提出过吗?
  • 我看的越多,我越觉得我测试得非常彻底,因此更合理的是这是一个错误。我尝试使用较小的字体和较长的单词并得到相同的结果。我提交了一个错误报告。同时,我正在使用较小的字体,希望减少我的用户遇到这种情况的可能性(即,他们可能不会以长词开头),以便我可以发布,但我没有感觉很好,因为问题仍然存在。
  • Jst 有这个问题 :(
  • 我确实提交了一份错误报告,他们要求我发布一个示例应用程序。我做到了,我会让你们知道结果如何。
  • 我已确认此错误可能会在未来几个月内修复。

标签: ios iphone objective-c uitextview uiapplicationdelegate


【解决方案1】:

另一个神秘的行为是,当你双击空格时,它 不会在末尾添加句点。它将最后一个字符替换为 时期。所以,“What”+空格+空格就变成了“Wha”。

这并不神秘。这意味着您的UITextView 使用自动更正。 修复:

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

关于空格...由于空格不是可绘制的符号,您的UITextView 无法测量大小(宽度因不同的对齐方式而异),因此您的UITextView 的@987654325 @property 不会被改变并且表现得很神秘。您应该手动设置contentSize(您可以使用sizeWithFont: 方法轻松计算NSString 的大小)。

【讨论】:

  • 嗯,自动添加句点是一种理想的行为。通常,当添加该句点时,它会附加到字符串的末尾,而不是替换最后一个字符。当我制作演示应用程序时,我没有调整大小。当单个单词到达文本区域的边缘时(即使没有动态调整大小),不良行为仍然存在。
猜你喜欢
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
相关资源
最近更新 更多