键盘自定义

http://blog.sina.com.cn/s/blog_7018d3820101djut.html


一、键盘风格  

UIKit框架支持8种风格键盘。

  1. typedef enum  
  2.     UIKeyboardTypeDefault,                // 默认键盘:支持所有字符   
  3.     UIKeyboardTypeASCIICapable,           // 支持ASCII的默认键盘   
  4.     UIKeyboardTypeNumbersAndPunctuation,  // 标准电话键盘,支持+*#等符号   
  5.     UIKeyboardTypeURL,                    // URL键盘,有.com按钮;只支持URL字符   
  6.     UIKeyboardTypeNumberPad,              //数字键盘   
  7.     UIKeyboardTypePhonePad,               // 电话键盘   
  8.     UIKeyboardTypeNamePhonePad,           // 电话键盘,也支持输入人名字   
  9.     UIKeyboardTypeEmailAddress,           // 用于输入电子邮件地址的键盘   
  10. UIKeyboardType;  

用法用例:

textView.keyboardtype= UIKeyboardTypeNumberPad;

二、键盘外观

  1. typedef enum  
  2.     UIKeyboardAppearanceDefault,    // 默认外观:浅灰色   
  3.     UIKeyboardAppearanceAlert,      //深灰/石墨色   
  4. UIKeyboardAppearance;  

用法用例:

textView.keyboardAppearance=UIKeyboardAppearanceDefault;

三、回车键

  1. typedef enum  
  2.     UIReturnKeyDefault, //默认:灰色按钮,标有Return
  3.     UIReturnKeyGo,  //标有Go的蓝色按钮
  4.     UIReturnKeyGoogle, //标有Google的蓝色按钮,用于搜索
  5.     UIReturnKeyJoin, //标有Join的蓝色按钮
  6.     UIReturnKeyNext, //标有Next的蓝色按钮
  7.     UIReturnKeyRoute, //标有Route的蓝色按钮
  8.     UIReturnKeySearch, //标有Search的蓝色按钮
  9.     UIReturnKeySend, //标有Send的蓝色按钮
  10.     UIReturnKeyYahoo, //标有Yahoo!的蓝色按钮,用于搜索
  11.     UIReturnKeyDone, //标有Done的蓝色按钮
  12.     UIReturnKeyEmergencyCall//紧急呼叫按钮
  13. UIReturnKeyType; 

用法用例:

textView.returnKeyType=UIReturnKeyGo;

四、自动大写

  1. typedef enum  
  2.     UITextAutocapitalizationTypeNone, //不自动大写   
  3.     UITextAutocapitalizationTypeWords, //单词首字母大写   
  4.     UITextAutocapitalizationTypeSentences, //句子首字母大写   
  5.     UITextAutocapitalizationTypeAllCharacters, //所有字母大写   
  6. UITextAutocapitalizationType;  
用法用例:

textField.autocapitalizationType UITextAutocapitalizationTypeWords;

五、自动更正

  1. typedef enum  
  2.     UITextAutocorrectionTypeDefault,//默认   
  3.     UITextAutocorrectionTypeNo,//不自动更正   
  4.     UITextAutocorrectionTypeYes,//自动更正   
  5. UITextAutocorrectionType 
用法用例:

textField.autocorrectionType UITextAutocorrectionTypeYes;

六、安全文本输入

textView.secureTextEntry=YES;

开启安全输入主要是用于密码或一些私人数据的输入,此时会禁用自动更正和自此缓存。


统计字符和响应RETURN键

统计字符:

1、UITextView

- (void)textViewDidChange:(UITextView *)textView
{
    int count = [textView.text length];
    //这里的count就是字符个数了
}

2、UITextField

方法一:

自己先为UITextField的Editing Changed事件添加一个响应方法

-(IBAction)valuechange//m_TextField是UITextField的一个IBOutlet
{
     int count = [m_TextField.text length];
     //count就是当前的字符个数

    //下边是将字符限制在140以内
    if ([m_TextField.text length]>140) {
        [m_TextField setText:[m_TextField.text substringToIndex:140]];//多出140时,只取前140个字符
    }
}
复制代码

方法二:

在代理方法:-(BOOL)textField:(UITextField *)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string,判断range.length的值来判断输入的是回格还是其它字符

 

响应Return键

1、UITextView

//代理方法

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if (1 == range.length) {//按下回格键
        return YES;
    }
    if ([text isEqualToString:@"\n"]) {//按下return键
        //这里隐藏键盘,不做任何处理
        [textView resignFirstResponder];
        return NO;
    }else {
        if ([textView.text length] < 140) {//判断字符个数
            return YES;
        }  
    }
    return NO;
}
复制代码

2、UITextField

这个直接有代理方法哈

- (BOOL)textFieldShouldReturn:(UITextField *)textField


UITextField进入编辑状态获得焦点 becomeFirstResponder

 关闭键盘 resignFirstResponder

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 LVGL 中,可以使用 lv_keyboard_create 函数创建一个键盘对象,并使用 lv_keyboard_set_map 函数设置键盘的按键映射。按键映射是一个二维数组,其中每个元素表示一个按键,可以自定义按键的标签、宽度、高度、样式等属性。 以下是一个简单的示例代码,演示如何创建一个带有自定义按键的键盘: ```c // 定义按键映射 static const char *kb_map[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", LV_SYMBOL_BACKSPACE, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", LV_SYMBOL_KEYBOARD, "z", "x", "c", "v", "b", "n", "m", ",", ".", "?", LV_SYMBOL_OK, LV_SYMBOL_CLOSE, "" }; // 创建键盘对象 lv_obj_t *kb = lv_keyboard_create(lv_scr_act(), NULL); // 设置按键映射 lv_keyboard_set_map(kb, LV_KEYBOARD_MODE_TEXT_LOWER, kb_map); // 设置自定义按键样式 lv_style_t style_btn_rel; lv_style_t style_btn_pr; lv_style_copy(&style_btn_rel, &lv_style_btn_rel); lv_style_copy(&style_btn_pr, &lv_style_btn_pr); style_btn_rel.body.main_color = LV_COLOR_GRAY; style_btn_rel.body.grad_color = LV_COLOR_GRAY; style_btn_pr.body.main_color = LV_COLOR_BLUE; style_btn_pr.body.grad_color = LV_COLOR_BLUE; style_btn_pr.text.color = LV_COLOR_WHITE; lv_keyboard_set_style(kb, LV_KEYBOARD_STYLE_BTN_REL, &style_btn_rel); lv_keyboard_set_style(kb, LV_KEYBOARD_STYLE_BTN_PR, &style_btn_pr); // 添加自定义按键 lv_keyboard_add_text(kb, "Enter", strlen("Enter"), NULL); ``` 在上述代码中,首先定义了一个按键映射 kb_map,其中包含了常见的字母、数字、符号等按键,以及两个 LVGL 的符号图标,分别表示退格和确定。然后创建了一个键盘对象 kb,并使用 lv_keyboard_set_map 函数设置了按键映射。接着使用 lv_keyboard_set_style 函数设置了按键的样式,包括材质、颜色、字体等属性。最后使用 lv_keyboard_add_text 函数添加了一个自定义按键,其标签为 "Enter",长度为 strlen("Enter"),样式为默认样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值