用户点击窗口中的任何位置时如何删除键盘?

时间:2013-09-01 06:25:11

标签: titanium titanium-mobile

当用户点击窗口中的任何地方时,你能告诉我如何在IOS中隐藏键盘。我在按钮上使用blur()点击它工作但是当我在视图中使用时它不起作用.. :(

我检查用户是否点击了除textfield之外的任何地方它隐藏键盘我的逻辑失败.. :(

这是我的代码..

//FirstView Component Constructor
function FirstView() {
    //create object instance, a parasitic subclass of Observable
    var self = Ti.UI.createView({
        layout:"vertical"
    });


        var self1 = Ti.UI.createView({
        layout:"horizontal",
        top:20,
        height:Ti.UI.SIZE
    });



        var self2 = Ti.UI.createView({
        layout:"horizontal",
        top:10,
        height:Ti.UI.SIZE
    });



    //label using localization-ready strings from <app dir>/i18n/en/strings.xml

        var nameLabel=Ti.UI.createLabel({

        text:"Name",

        left:15,
        width:100,
        height:35
    });




    var nameTextField=Ti.UI.createTextField({

    height:35,
    width:140,
    borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED       
    });

        self1.add(nameLabel);
        self1.add(nameTextField);
            self.add(self1);

    var passwordLabel=Ti.UI.createLabel({

        text:"Password",

        left:15,
        width:100,
        height:35
    });




    var passwordTextField=Ti.UI.createTextField({

    height:35,
    width:140,
    passwordMask:true,
    borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED       
    });


    var loginButton =Ti.UI.createButton({

        title:"LOGIN",
        top: 120,
        width:200,
        height:40

    });


    loginButton.addEventListener('click',function(e){
        passwordTextField.blur();
        nameTextField.blur();

    });

    self2.add(passwordLabel);
    self2.add(passwordTextField);// self.backgroundImage="http://bluebackground.com/__oneclick_uploads/2008/04/blue_background_03.jpg";

    self.add(self2);
    self.add(loginButton);

    self.addEventListener('click',function(e){

        if(e.source != [Ti.UI.TextField]){
            alert("window click");
        passwordTextField.blur();
        nameTextField.blur();

}

    });
    return self;
}

module.exports = FirstView;

1 个答案:

答案 0 :(得分:3)

也许你可以精确地使用你正在使用的Titanium版本。

但据我所知,使用版本3.1.1.GA,您可以这样做:

if (e.source != '[object TiUITextField]') {

而不是:

if(e.source != [Ti.UI.TextField]){

对我来说,它运作得很好:

  • 点击文字字段:打开键盘
  • 点击其他地方:关闭键盘

你甚至不再需要按钮上的事件监听器了。