在IM的后期测试时发现,尽管模拟器键盘上没有换行符,但如果用户使用的搜狗输入法之类包含有换行进行输入,屏幕上输出的气泡仅为最小。debug后发现原来是计算字符串长度时出现错误,用户输入的换行符在string中为\r ,而iOS中无论是7.0被放弃的sizeWithFont方法还是新的boundingRectWithSize方法都在计算包含\r字符串时返回0。
在计算字符串长度时过滤掉\r可以修复这个bug,同时不会影响最终结果显示。
text = [[text componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\r"]] componentsJoinedByString:@""];
网友评论