如何在React Native上保留/模糊TextInput键盘

时间:2015-09-19 11:28:29

标签: javascript ios reactjs react-native textinput

我点击textinput和键盘从底部滑动,如何将其向下滑动或保持/模糊键盘的原生作用?

4 个答案:

答案 0 :(得分:5)

https://github.com/facebook/react-native/blob/master/Libraries/Utilities/dismissKeyboard.js

@using WebMatrix.Data; 
@functions{
    public string EditPost()
    {
        var db = Database.Open("StarterSite");
        var post = Request.Unvalidated["data"];
        var result = Json.Decode(post);
        var error = new System.Collections.Specialized.NameValueCollection();

        /*        Id: postID,
                    Title: postTitle,
                    Author: postAuthor,
                    Date: postDate,
                    Content: afterEdit,
                    Page: $(document).attr('title')
                    */
        if(string.IsNullOrEmpty(result["Id"]))
        {
            error.Add("Error", "Id empty");
            return Json.Encode(error);
        }
        if (string.IsNullOrEmpty(result["Author"]))
        {
            error.Add("Error", "Author empty");
            return Json.Encode(error);
        }
        if (string.IsNullOrEmpty(result["Content"]))
        {
            error.Add("Error", "Content empty");
            return Json.Encode(error);
        }
        if (string.IsNullOrEmpty(result["Date"]))
        {
            error.Add("Error", "Date empty");
            return Json.Encode(error);
        }
        //Page and Title only ones that can be empty
        var cmd = "UPDATE Posts SET ID='" + result["Id"]
                + "',Author='" + result["Author"]
                + "',Content='" + result["Content"]
                + "',Date='" + result["Date"]
                + "',Title='" + result["Title"]
                + "',Page='" + result["Page"]
                + "' WHERE ID='" + result["Id"] + "';";
        try { db.Execute(cmd); }
        catch (Exception e)
        {
            error.Add("Error",e.Message);
            return Json.Encode(error);
        }


        if (string.IsNullOrEmpty(result["metaDescription"]))
        {
            error.Add("Error", "metaDescription empty");
            return Json.Encode(error);
        }
        if (string.IsNullOrEmpty(result["metaKeywords"]))
        {
            error.Add("Error", "metaKeywords empty");
            return Json.Encode(error);
        }
        //Post was edited successfully add/update meta info
        int parseResult = 0;
        Int32.TryParse(result["metaID"], out parseResult);
        if (parseResult > 0)//metaID is supplied
        {
            cmd = "UPDATE MetaInfo SET Description='" + result["metaDescription"]
             + "',Keywords='" + result["metaKeywords"]
             + "',postID='" + result["Id"]
             + "' WHERE ID='" + result["metaID"] + "';";
        }
        else //metaID is not supplied
        {
            cmd = "INSERT INTO MetaInfo (Description,Keywords,postID) VALUES('"
            + result["metaDescription"] + "','"
            + result["metaKeywords"] + "','"
            + result["Id"] + "');";
        }
        try
        {
            db.Execute(cmd);
        }
        catch (Exception e)
        {
            error.Add("Error",e.Message);
            return Json.Encode(error);
        }
        //End Update meta info 
        error.Add("Success", "true");
        return Json.Encode(error); //"{ \"Result\":[{\"Success\":\"true\"}]}";
    }
}
 @{
 var result = EditPost(); 
 } 
 @result

答案 1 :(得分:0)

使用iqkeyboardManager最好用完成按钮工具栏隐藏键盘

链接:https://github.com/hackiftekhar/IQKeyboardManager

答案 2 :(得分:0)

您可以使用Keyboard中的react-native模块。

https://facebook.github.io/react-native/docs/keyboard

import { Keyboard } from react-native;

Keyboard.dismiss();

答案 3 :(得分:-1)

这是当前的默认行为。显示onFocus并隐藏onBlur。因此,不再需要额外的库。