我们已经添加了一个iOS模块,其中包含一个库(.a)到一个简单的键盘和textfield钛项目。
该库通过UIWebView使用了大量的javascript,并通过框架与应用程序进行通信。
在iOS项目中使用它时,库非常稳定可靠,但在与钛模块集成时会导致问题。
以下是问题代码的简单版本
var module = require ('com.module.test');
var win1 = Titanium.UI.createWindow({
backgroundColor:'#fff'
});
var cancelKb = Titanium.UI.createButton({
title : "Cancel",
style : Ti.UI.iPhone.SystemButtonStyle.BORDERED
});
cancelKb.addEventListener('click',function(e){tf.backgroundColor='#faa'; tf.blur(); });
var doneKb = Titanium.UI.createButton({
title : "Done",
style : Ti.UI.iPhone.SystemButtonStyle.DONE
});
doneKb.addEventListener('click',function(e){tf.backgroundColor='#aaf'; tf.blur(); });
var tf = Ti.UI.createTextField({
hintText : "Enter code",
top : 30,
height : 44,
left : 5,
right : 5,
paddingLeft : 20,
clearButtonMode : Ti.UI.INPUT_BUTTONMODE_ALWAYS,
autocorrect : false,
visible : true,
zIndex : 99,
returnKeyType : Ti.UI.RETURNKEY_DONE,
keyboardType : Ti.UI.KEYBOARD_PHONE_PAD //UI.KEYBOARD_NUMBERS_PUNCTUATION,
});
var flexspace = Titanium.UI.createButton({
systemButton : Titanium.UI.iPhone.SystemButton.FLEXIBLE_SPACE
});
tf.keyboardToolbar = [cancelKb, flexspace, doneKb];
win1.add(tf);
win1.open();
tf.focus();
如果以下var module = require ('com.module.test');
不包含键盘工具栏按钮多次工作正常。
包括此模块将一直有效,直到键盘第一次被解除,然后当键盘重新聚焦时,“取消”和“完成”按钮将不再响应。