我有一个带有PREVIOUS和NEXT按钮的键盘工具栏设置。我想弄清楚哪个文本字段有焦点,所以我可以允许用户跳转到下一个字段或返回上一个字段。我的代码目前看起来像这样:
//Setup keyboard toolbar.
var flexSpace = Titanium.UI.createButton({
systemButton:Titanium.UI.iPhone.SystemButton.FLEXIBLE_SPACE
});
var navButtons = Titanium.UI.createButtonBar({
labels:['Previous','Next'],
backgroundColor:'#336699',
top:100,
style:Titanium.UI.iPhone.SystemButtonStyle.BAR,
height:25,
width:'auto'
});
navButtons.addEventListener('click',function(e){
// Previous Button, index 0.
Titanium.API.info(e.index);
if (e.index == 0){
if (nameTxt.hasFocus == "nameTxt"){
phoneTxt.focus();
}
}
// Next Button, index 1.
if (e.index == 1){
if (nameTxt.hasFocus){
nameTxt.hasFocus = false;
phoneTxt.hasFocus = true;
}/*else{
done.fireEvent('click');
}*/
}
});
我认为我已接近完成这项工作,所以只需要最后的推动。任何帮助赞赏。
此致 斯蒂芬
答案 0 :(得分:0)
你可以设置键盘上有下一个按钮吗?
它不会解决前进和后退,但它比下面的解决方案更容易。
困难的方法是跟踪哪个字段在单独的属性中具有焦点。每当焦点更改时,将属性更新为具有焦点的新项目
答案 1 :(得分:0)
您是否尝试过使用带有模糊和焦点的addEventListener? https://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.TextField-object
答案 2 :(得分:0)
从这里摘录:
http://developer.appcelerator.com/question/120797/textfield---how-to-check-the-focus
function CreateTextField(options) {
var tf = Ti.UI.createTextField(options);
//define flag
tf.hasFocus = false;
tf.addEventListener('focus', function() {
this.hasFocus = true;
});
tf.addEventListener('blur', function() {
this.hasFocus = false;
});
return tf;
}
然后只需调用CreateTextField:
email=CreateTextField({
width: 150,
left: 110,
height: 35,
hintText: 'login_email',
borderStyle:Titanium.UI.INPUT_BORDERSTYLE_NONE,
keyboardType : Titanium.UI.KEYBOARD_EMAIL,
keyboardToolbar : [navButtons, flexSpace, done],
color: '#949495'
})
之后,你可以这样做:
Titanium.API.info(email.hasFocus);
if (e.index == 0){
if (email.hasFocus){
email.focus();
}
}
希望这对你有帮助!