如何实现该检测功能?
我在想那样的东西......
QTextEdit * pwTextEdit = whatever your source;
QTextDocument * poDocument = pwTextEdit->document();
QTextBlock oTextBlock = poDocument->begin();
while (oTextBlock.isValid())
{
QTextBlock::iterator oTextBlockIterator(oTextBlock.begin());
while (TRUE)
{
if (oTextBlockIterator.atEnd())
{
// Append your '\n' here
break;
}
QTextFragment oTextFragment = oTextBlockIterator.fragment();
QString sText = oTextFragment.text();
// Process the text from sText
oTextBlockIterator++;
}
oTextBlock = oTextBlock.next();
}
欣赏
答案 0 :(得分:1)
@ryemoss提供的解决方案很棒,但检查将在运行时进行评估。如果你想避免每帧检查,我建议你使用Platform dependent compilation。由于预处理程序指令,只有所需的代码将根据目标平台
编译到您的应用程序中#if UNITY_IOS || UNITY_ANDROID || UNITY_WP_8_1
for (int i = 0; i < Input.touchCount; ++i)
{
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
some code here...
}
}
#else
if (Input.GetKey(KeyCode.RightArrow))
{
_normalizedHorizontalSpeed = 1;
}
else if (Input.GetKey(KeyCode.LeftArrow))
{
_normalizedHorizontalSpeed = -1;
}
#endif
但是,请注意,如果使用Unity Remote,则此方法在编辑器中难以调试。
答案 1 :(得分:0)
您正在寻找Application.platform
。
以下内容应该可以实现您的目标,或者阅读here以获取更多设备。
if (Application.platform == RuntimePlatform.WindowsPlayer)
Debug.Log("Do something special here");
else if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer)
Debug.Log("Do something else here");
然而,你可能最好一起摆脱这个检查,因为它是多余的!如果您按右箭头或左箭头,则表示用户正在使用键盘。