現在、C++ でテキスト フィールドから文字を削除する実装を試みています。ユーザーが Backspace キーを押すと、次のコードが実行されます。現在カーソルはありません。最後の文字を削除するだけです...
if (mText.length() > 0){
mText.erase( mText.length() - 1, 1);
// mText.resize(mText.length() - 1);
}
これは最初は問題なく動作しますが、もう一度 Backspace を押しても何も削除されません。
を印刷したmText.length()
ところ、長さが変わらないことがわかりました。文字列を試してみましたが、正常に動作しますが、最初にバックスペースを押すと2文字resize()
が削除されます。
誰かがこの動作を説明し、問題の解決を手伝ってくれることを願っています. 私はメモリ割り当てについてあまり知らないので、しばらくお待ちください;)
ありがとうござい
ます