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

たぶん、使用しているチタンのバージョンを正確にすることができます.

しかし、私の知る限り、バージョン 3.1.1.GA では、次のようにすることができます。

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

それ以外の :

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

私にとっては、問題なく動作します:

  • テキストフィールドをクリックします: キーボードを開きます
  • 他の場所をクリック : キーボードを閉じます

また、ボタンにイベント リスナーを追加する必要さえありません。

于 2013-09-01T14:42:51.383 に答える