extension::CCEditBoxを利用してテキスト入力UIを実装したシーンで
シーン切り替えを繰り返し操作しているとたまにBAD_ACCESSで逝かれる。
その対処修正
iOSの時のみ起こる模様。
EditBox::updatePosition()がタイマーで0.1sec毎にスケジュール実行されるが、closeKeyboard()の処理に入った直後にupdatePosition()が発生すると逝かれる模様(推測ですが)
extensions/GUI/CCEditBox/CCEditBox.cpp
void EditBox::onExit(void)を修正
修正前
1 2 3 4 5 6 7 8 9 10 11 |
void EditBox::onExit(void) { ControlButton::onExit(); if (_editBoxImpl != nullptr) { // remove system edit control _editBoxImpl->closeKeyboard(); } } |
修正後
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void EditBox::onExit(void) { ControlButton::onExit(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC) // スケジュールの停止 this->unschedule(schedule_selector(EditBox::updatePosition)); #endif if (_editBoxImpl != nullptr) { // remove system edit control _editBoxImpl->closeKeyboard(); } } |
なおったかな?しばらく様子見。