UITextField 触摸事件响应的问题

UITextField 只有在点击文字或者占位文本的地方才响应响?如果只输入了一个字,这时候,想点击这个字就很难了,而且用户也不知道只有点中文字才打开输入法。求解决办法

void UITextField::setTouchSize(const CCSize &size)
{
m_bUseTouchArea = true;
m_fTouchWidth = size.width;
m_fTouchHeight = size.height;
}
我看到这一段代码,但在 virtual bool hitTest(const CCPoint &pt); 没有被重写,这个COCOSTUDIO正在开发的未完工的功能吗?

恩,现在确实会有这个问题,可以在底下加个透明的按钮,用了接受点击事件。

我改写了一下
virtual bool hitTest(const CCPoint &pt)
{
if (m_bUseTouchArea)
{
CCPoint nsp = m_pRenderer->convertToNodeSpace(pt);
CCRect bb = CCRectMake(-m_fTouchWidth * m_anchorPoint.x, -m_fTouchHeight * m_anchorPoint.y, m_fTouchWidth, m_fTouchHeight);
if (nsp.x >= bb.origin.x && nsp.x <= bb.origin.x + bb.size.width && nsp.y >= bb.origin.y && nsp.y <= bb.origin.y + bb.size.height)
{
return true;
}
return false;
}
else
{
return UIWidget::hitTest(pt);
}
}

你的意思是,这样做的话,点击到 输入框 后 不光输入框本身会响应点击事件 而且 输入框下面隐藏的 按钮 也会收到点击事件?

怎么我测试结果是这样的 : 1,如果 按钮的渲染层级 大于 输入框的渲染层级 那 只有按钮 能响应到 点击事件;
2,如果输入框的渲染层级 大于 按钮的渲染层级 那 只有输入框 能响应到 点击事件;

您好,我的意思是通过button接收事件,然后让输入框成为焦点。不过现在的版本基本点击还是很容易的,只要在文字范围内都可以点击到。感谢您的支持。

这个方法真囧
UITextField 非常有必要再改改!

一直在优化~~如果你看底层的话,应该能看到变化。我这个属于临时解决办法,如果您有好的方案欢迎与我们联系~

怎么样让输入框成为焦点呢?