3.4 Label自动换行问题

不知道是我使用方法不对,还是引擎的文字排版处理的弱爆了,先上代码
Label* lbl = Label::createWithTTF(“HAHAHAHAHAHAHAHAHAHA~This is a long word test. HAHAHAHA~”, DEFAULT_FONT, 18);
lbl->setDimensions(380, 0);
addChild(lbl);
控件效果完全无视setDimesions——

如果加上无空格折行的话:
Label* lbl = Label::createWithTTF(“HAHAHAHAHAHAHAHAHAHA~This is a long word test. HAHAHAHA~”, DEFAULT_FONT, 18);
lbl->setLineBreakWithoutSpace(true);
lbl->setDimensions(380, 0);
addChild(lbl);
控件效果完全无视语法规则,不管断词、分行,直接按字符截取换行了——

保证在setDimensions指定的行宽内整词折行有这么难吗?排版函数而已呀,只希望Label能做到这样:
HAHAHAHAHAHAHAHA
HAHA~~ This is a long
word test.

2.x版本都是可以的,不知道为什么3.x就这样了。茫然,求助。

没人回自己顶,顶到高手解答。

等待回答的时间里,都写完一套排版了。。
继续等,就不信没有人知道
期待大神指点

你说的控件效果完全无视setDimesions?

这是因为你的单词长度(HAHAHAHAHAHAHAHAHAHA~~~This,它是以空格区分单词的)太长,超过了setDimesions指定的宽度,本着不破坏单词完整性的原则,保留了原长,很多编辑器都是这么处理的吧?

请问 只有英文有这个功能吗?中文或其他语言文字想实现“只有遇到空格,才自动换行”这么个功能,该怎么做呢。

自己找到了 还没有进一步验证
在ccUTF8.cpp里的bool iscjk_unicode(unsigned short ch) 方法,里面判断字符是不是中日韩文字的。注释相应语言,应该可以实现我想要的功能。