【COCOS2DX-游戏开发之八】点击空白隐藏键盘
来源:互联网 发布:护士资格证题库软件 编辑:程序博客网 时间:2024/05/29 09:09
cocos2dx edit编辑框点击后显示一个键盘,但是非常的不灵活,点return才能隐藏,如果我们需要点键盘外的背景,实现隐藏键盘,那就方便多了
方法:
1. 到EGLView.mm下 注释2个reurn,这样就能保证显示软键盘的时候,还能将点击事件传送到最底层
- // Pass the touches to the superview
- #pragma mark EAGLView - Touch Delegate
- - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- {
- if (isKeyboardShown_)
- {
- [self handleTouchesAfterKeyboardShow];
- //WARNING:commented by Teng.点触背景隐藏软键盘
- //return;
- }
- int ids[IOS_MAX_TOUCHES_COUNT] = {0};
- float xs[IOS_MAX_TOUCHES_COUNT] = {0.0f};
- float ys[IOS_MAX_TOUCHES_COUNT] = {0.0f};
- int i = 0;
- for (UITouch *touch in touches) {
- ids[i] = (int)touch;
- xs[i] = [touch locationInView: [touch view]].x * view.contentScaleFactor;;
- ys[i] = [touch locationInView: [touch view]].y * view.contentScaleFactor;;
- ++i;
- }
- cocos2d::CCEGLView::sharedOpenGLView()->handleTouchesBegin(i, ids, xs, ys);
- }
- - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
- {
- if (isKeyboardShown_)
- {
- <strong><span style="color:#ff0000;">//WARNING:commented by Teng.点触背景隐藏软键盘</span>
- //return;</strong>
- }
- int ids[IOS_MAX_TOUCHES_COUNT] = {0};
- float xs[IOS_MAX_TOUCHES_COUNT] = {0.0f};
- float ys[IOS_MAX_TOUCHES_COUNT] = {0.0f};
- int i = 0;
- for (UITouch *touch in touches) {
- ids[i] = (int)touch;
- xs[i] = [touch locationInView: [touch view]].x * view.contentScaleFactor;;
- ys[i] = [touch locationInView: [touch view]].y * view.contentScaleFactor;;
- ++i;
- }
- cocos2d::CCEGLView::sharedOpenGLView()->handleTouchesEnd(i, ids, xs, ys);
- }
2.最底层的layer类中添加处理:显示和隐藏键盘就OK了
- void ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
- {
- do
- {
- if (mTelNumber) {
- CCPoint endPos = pTouch->getLocation();
- float delta = 5.f;
- if (::abs(mBeginPos.x - endPos.x) > delta
- || ::abs(mBeginPos.y - endPos.y) > delta) {
- break;
- }
- // 看编辑框是否被点中
- CCPoint point = mTelNumber->getParent()->convertTouchToNodeSpaceAR(pTouch);
- // 锚点(0.f, 0.5f)
- //int x = mTextField->getParent()->getPosition().x;
- //int y = mTextField->getParent()->getPosition().y;
- int w = mTelNumber->getContentSize().width;
- int h = mTelNumber->getContentSize().height;
- CCRect rect = CCRect(0, -h/2, w, h);
- onClickedTextField(rect.containsPoint(point));
- }
- } while (0);
- DialogLayer::ccTouchEnded(pTouch, pEvent);
- }
- /** 点击推广码输入框 */
- void onClickedTextField(bool b)
- {
- if (b) {
- mTelNumber->attachWithIME();
- } else {
- mTelNumber->detachWithIME();
- }
- }
转载自:http://blog.csdn.net/teng_ontheway/article/details/9162781
0 0
- 【COCOS2DX-游戏开发之八】点击空白隐藏键盘
- 【COCOS2DX-游戏开发之八】点击空白隐藏键盘
- 【COCOS2DX-游戏开发之八】点击空白隐藏键盘
- ios开发 点击空白处隐藏键盘
- 点击空白隐藏键盘
- 点击空白处隐藏键盘
- editbox点击空白隐藏键盘
- 点击键盘以外空白区域隐藏键盘
- 点击空白处隐藏键盘的手势
- IOS 点击空白处隐藏键盘
- iOS 点击空白处键盘隐藏
- ios 点击界面空白处隐藏键盘
- iOS点击空白区域隐藏键盘
- 安卓点击空白处隐藏键盘
- 点击view空白处 隐藏键盘
- activity 下 点击空白处隐藏键盘
- Android点击屏幕空白处,隐藏键盘
- 点击任意空白处隐藏键盘
- 如何教你的医生来……使用开源
- Java网络编程之Socket通信
- java 物体运动过程中闪烁问题浅谈
- Elasticsearch 的坑爹事——记录一次mapping field修改过程
- XCode环境变量及路径设置
- 【COCOS2DX-游戏开发之八】点击空白隐藏键盘
- 物联网学习笔记大纲总结
- Unity3D研究院之手游开发中所有特殊的文件夹
- RSA加密算法原理
- BP神经网络的C代码分析
- 实现一个函数,传递一个有10个已经排好序的整形元素数组(数组大小实际为11)中,将一个指定的值按顺序插入,并在main函数中将插入后的数组输出。
- 用Lua编写iOS程序
- java操作access数据库乱码问题
- 使用nssm在windows服务器上部署nodejs