码迷,mamicode.com
首页 > 其他好文 > 详细

关于cocos2dx3.0 UITextField不能使用退格键删除字符的解决方式

时间:2014-10-12 22:15:58      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   color   io   os   使用   ar   for   

          近日開始将项目移植到cocos2dx 3.0版本号,出现了一些问题,UI方面眼下就发现UITextField控件不能响应退格键或者删除键,在Windows以下调试如此,我開始以为是平台支持不好,后来公布到Android后也是如此。

        没办法仅仅好跟踪了一下源代码。Key操作基本的处理是在CCGLView类里面的GLView::onGLFWKeyCallback()。看了一下其它函数的处理,定位问题是没有通知IMEDispatcher。尝试在这个函数里面加入?了几行代码:

if(GLFW_KEY_DELETE == key)  
{  
    IMEDispatcher::sharedDispatcher()->dispatchDeleteBackward();  
}

       再測试的时候发现已经能够了。只是这样改比較苟且,代码不太优美。并且不知道cocos2dx官方这样设计的目的是什么。最后决定在AppDelegate里面加入?监听然后再处理。详细代码例如以下:       

static void keyEventCallback(EventKeyboard::KeyCode code, Event *event)
{
	typedef EventKeyboard::KeyCode KeyCode;
	switch(code)
	{
	case KeyCode::KEY_BACKSPACE:
#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
		IMEDispatcher::sharedDispatcher()->dispatchDeleteBackward();
#else
		Director::getInstance()->end();
#endif
		break;
	case KeyCode::KEY_DELETE:
		IMEDispatcher::sharedDispatcher()->dispatchDeleteBackward();
		break;
	}
}
EventListenerKeyboard *listener = EventListenerKeyboard::create();
listener->onKeyReleased = keyEventCallback;
director->getEventDispatcher()->addEventListenerWithFixedPriority(listener, 1);
        问题算是攻克了。


关于cocos2dx3.0 UITextField不能使用退格键删除字符的解决方式

标签:android   style   blog   color   io   os   使用   ar   for   

原文地址:http://www.cnblogs.com/hrhguanli/p/4021021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!