如果你不想通過使用有點過時的模塊來創建依賴關係,您可以試試這個:
創建一個新文件,並根據需要調用它,本例中我使用yourview.js
。在它下面的代碼粘貼:
module.exports = {
view: Ti.UI.createView({
layout: 'vertical',
backgroundColor: '#ddd',
button: Ti.UI.createButton({ title: 'blur all textfields' }),
textfields: [
Ti.UI.createTextField({ value: 'first' }),
Ti.UI.createTextField({ value: 'second' }),
Ti.UI.createTextField({ value: 'third' }),
Ti.UI.createTextField({ value: 'fourth' }),
]
}),
construct: function()
{
var self = this;
self.view.button.addEventListener('click', function(){
for(var i in self.view.textfields)
self.view.textfields[i].blur();
});
// Add textfields to view
for(var i in self.view.textfields)
self.view.add(self.view.textfields[i]);
// Add button to view
self.view.add(self.view.button);
return self.view;
}
};
的yourview.js
文件包含要在該特定視圖中顯示一切。該構造函數將增加都在一起,當你要使用你的Window對象的觀點,這將是這樣的:
var win = Ti.UI.createWindow({
yourview: require('namespace/ui/yourview').construct()
});
// Add your reference to the scope of the Window object
win.add(win.yourview);
win.open();
// If you want to get the value of the textfields in this scope just use it like this:
Ti.API.info(win.yourview.textfields[0].value);
這樣,你所擁有的一切,你在不同的文件:)
想測試並且可以在使用Ti.5.4.0 SDK的iOS 9.3模擬器中運行。
謝謝,但模塊已過時 – WhiteLine
它仍然可以正常使用最新的Titanium SDK 6.0.3 – danny005
您是否看過源代碼?它只是對於所提到的本機方法的包裝: ''' - (ID)隱藏:(ID)ARGS { dispatch_sync(dispatch_get_main_queue(),^ { 的UIWindow *窗口= [[UIApplication的sharedApplication] keyWindow]; UIView * topView = window.rootViewController.view; [topView endEditing:YES]; }); } – danny005