gpt4 book ai didi

ios - 在文本字段之间更改焦点时保持键盘打开

转载 作者:行者123 更新时间:2023-12-01 20:21:00 28 4
gpt4 key购买 nike

在我用 Appcelerator Titanium for iOS 和 Android 开发的应用程序中,我有一些文本字段,当用户单击返回按钮时,我想在这些文本字段之间导航。

在 Android 上,这是通过设置返回键类型自动处理的。对于 iOS,我必须添加事件监听器,以便在单击返回按钮时触发对下一个字段的关注。

但是,在发生焦点切换时,键盘会向下动画,然后再次向上动画。显示行为的代码示例:

var win = Ti.UI.createWindow({width: Ti.UI.FILL,height: Ti.UI.FILL,backgroundColor:'white'});
var input1 = Ti.UI.createTextField({
width: 50, height:20, top: 50, hintText: 'input1',
returnKeyType: Ti.UI.RETURNKEY_NEXT
});
input1.addEventListener("return",function(){input2.focus();});
win.add(input1);
var input2 = Ti.UI.createTextField({
width: 50, height:20, top: 100, hintText: 'input2',
returnKeyType: Ti.UI.RETURNKEY_NEXT
});
input2.addEventListener("return",function(){input1.focus();});
win.add(input2);
win.open();

根据之前给出的答案(后来被删除),可以在 Vanilla iOS 中保持键盘打开。那么 - 有没有办法使用这种技术在 Appcelerator 中在 iOS 上切换文本字段焦点期间保持键盘打开?谢谢!

最佳答案

在查看适用于 iOS 的 Titanium 源代码之前,我花了几个小时在这上面(我不会说 Obj.C)。最后,我了解到我所知道的一个属性的行为与我的预期完全相反。您需要做的就是设置suppressReturnfalse .

我还将为在返回时前进到下一个字段的表单提供我的可移植代码:

观点

<View id='signupForm' class='formContainer'>
<TextField id='emailField' name='email' class='loginField emailField' hintText='email' onReturn='selectNextField' onFocus='scrollToField' />
<View class="hrLine"></View>
<TextField id='passwordField' name='password' class='loginField' hintText='password' passwordMask='true' onReturn='selectNextField' onFocus='scrollToField' />
<View class="hrLine"></View>
<TextField id='fnameField' class='loginField' name='fname' hintText='first name' onReturn='selectNextField' onFocus='scrollToField' autocapitalization='Ti.UI.TEXT_AUTOCAPITALIZATION_WORDS'/>
<View class="hrLine"></View>
<TextField id='lnameField' class='loginField' name='lname' hintText='last name' returnKeyType='Ti.UI.RETURNKEY_GO' onReturn='submitSignup' onFocus='scrollToField' autocapitalization='Ti.UI.TEXT_AUTOCAPITALIZATION_WORDS'/>
</View>

风格
'.loginField': {
height: 40,
width: '100%',
opacity: 1,
paddingLeft: 10,
returnKeyType: Ti.UI.RETURNKEY_NEXT,
// THE CRITICAL LINE
suppressReturn: false
}

Controller
// controller.js
function selectNextField(e) {
var hint = e.source.getHintText(),
nextOne = false,
finished = false;

// find currently focused field then declare that the next field is THE ONE
_.each($.signupForm.getChildren(), function(view) {
if(finished) {
return;
}

if(view.getHintText && view.getHintText() === hint) {
nextOne = true;
return;
}
if(nextOne && view.getApiName() === 'Ti.UI.TextField') {
finished = true;
return view.focus();
}
});
}

关于ios - 在文本字段之间更改焦点时保持键盘打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35754787/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com