我正在尝试创建一个用户输入数据的文本框,但是,每当我尝试设置 backspace 键来删除字符串的最后一个字符时,它都没问题,即使无数的教程以这种方式向我展示,它似乎也无法工作。
if (event.type == sf::Event::TextEntered)
{
sentence += (char)event.text.unicode;
//if (sentence.getSize() < 16) {
//
if (event.text.unicode == 8)
{
sentence.erase(sentence.getSize() - 1, sentence.getSize());
}
text.setString(sentence);
break;
//}
}
另外,想知道阻止字符串推进16个字符的最佳方法是什么。
答案 0 :(得分:0)
没关系,不是那么难,你会在我说的话之后感到很奇怪^^
if (event.type == sf::Event::TextEntered) {
if (event.text.unicode == 8)
if (sentence.getSize())//If the string doesn't have any char, don't do anything
sentence.erase(sentence.getSize() - 1, sentence.getSize());
else //Don't add any character when you delete one
if(sentence.getSize() < 16)//Yeah, thats the best way to do it
sentence += (char)event.text.unicode;
text.setString(sentence);
break;
}
如果您按退格键,您的程序会将其添加到字符串然后将其删除...所以......它没有做任何事情^^