1

你能告诉我当用户单击窗口中的任何位置时如何在 IOS 中隐藏键盘吗?我在按钮单击时使用了 blur(),但是当我在视图中使用它时它不起作用..:(

我检查用户是否单击文本字段以外的任何地方,它隐藏了键盘我的逻辑失败..:(

这是我的代码..

//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;
4

1 回答 1

3

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

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

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

代替 :

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

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

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

而且您甚至不再需要按钮上的事件侦听器。

于 2013-09-01T14:42:51.383 回答