键盘收回和拉起以及键盘的类型

UISearchBar:

-(void)createNotiFication

{

    [[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(keyboardwillshow:) name:UIKeyboardWillShowNotificationobject:nil];

    [[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(keyboardwillhidden:) name:UIKeyboardWillHideNotificationobject:nil];

}

-(void)keyboardwillshow:(NSNotification*)noti

{

    NSLog(@"键盘出来了");

    

}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

{

    [searchBar resignFirstResponder];

    //[[NSNotificationCenter defaultCenter] postNotificationName:UIKeyboardWillHideNotification object:nil];

}

-(void)keyboardwillhidden:(NSNotification*)noti

{

    NSLog(@"键盘回去了");

}

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar

{

    [searchBar resignFirstResponder];

    return YES;

}


UITextField:


-(void)createNotify

{

//    NSNotification *noti = [[NSNotification alloc]init];

    //消息中心监测    键盘显示消息

    [[NSNotificationCenter defaultCenteraddObserver:selfselector:@selector(keyShow:) name:UIKeyboardWillShowNotification object:nil];

 

    //消息中心监测    键盘隐藏消息

    [[NSNotificationCenter defaultCenteraddObserver:selfselector:@selector(keyHidden:) name:UIKeyboardWillHideNotificationobject:nil];

    

}

//键盘显示时的消息

-(void)keyShow:(NSNotification *)noti

{

    //键盘的高度

    //[notification.userInfo[@"UIKeyboardFrameEndUserInfoKey"] CGRectValue].size.height]

    NSLog(@"键盘显示");

}

-(void)keyHidden:(NSNotification *)noti

{

    NSLog(@"键盘隐藏");

}

//文本视图键盘输入了返回键

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

    //键盘消失

    [textField resignFirstResponder];

    return YES;

}




一、键盘的类型
支持8种风格键盘。
typedef enum {
  UIKeyboardTypeDefault, // 默认键盘:支持所有字符
  UIKeyboardTypeASCIICapable, // 支持ASCII的默认键盘
  UIKeyboardTypeNumbersAndPunctuation, // 标准电话键盘,支持+*#等符号
  UIKeyboardTypeURL, // URL键盘,有.com按钮;只支持URL字符
  UIKeyboardTypeNumberPad, //数字键盘
UIKeyboardTypePhonePad, // 电话键盘
  UIKeyboardTypeNamePhonePad, // 电话键盘,也支持输入人名字
  UIKeyboardTypeEmailAddress, // 用于输入电子邮件地址的键盘
} UIKeyboardType;
用法用例:
textField.keyboardtype = UIKeyboardTypeNumberPad;

二、键盘外观
typedef enum {
  UIKeyboardAppearanceDefault, // 默认外观:浅灰色
  UIKeyboardAppearanceAlert, //深灰/石墨色
} UIKeyboardAppearance;

用法用例:
textField.keyboardAppearance=UIKeyboardAppearanceDefault;

三、回车键类型
typedef enum {
 UIReturnKeyDefault, //默认:灰色按钮,标有Return
 UIReturnKeyGo, //标有Go的蓝色按钮
   UIReturnKeyGoogle, //标有Google的蓝色按钮,用于搜索
   UIReturnKeyJoin, //标有Join的蓝色按钮
   UIReturnKeyNext, //标有Next的蓝色按钮
   UIReturnKeyRoute, //标有Route的蓝色按钮
   UIReturnKeySearch, //标有Search的蓝色按钮
   UIReturnKeySend, //标有Send的蓝色按钮
   UIReturnKeyYahoo, //标有Yahoo!的蓝色按钮,用于搜索
   UIReturnKeyDone, //标有Done的蓝色按钮
   UIReturnKeyEmergencyCall, //紧急呼叫按钮
 } UIReturnKeyType;

用法用例:
textField.returnKeyType=UIReturnKeyGo;

四、输入框变为密码框

textField.secureTextEntry=Yes;





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Flutter中,可以使用以下代码来监听键盘弹起和收回事件: ```dart import 'package:flutter/services.dart'; // 监听键盘弹起和收回 final keyboardVisibilityController = KeyboardVisibilityController(); bool isKeyboardVisible = false; class KeyboardVisibilityController { final ValueNotifier<bool> visibilityNotifier = ValueNotifier<bool>(false); KeyboardVisibilityController() { // 监听键盘弹起和收回事件 SystemChannels.keyboard.addListener(_handleKeyboardVisibility); } void _handleKeyboardVisibility() { final bool isKeyboardOpen = WidgetsBinding.instance!.window.viewInsets.bottom > 0; visibilityNotifier.value = isKeyboardOpen; } void dispose() { // 移除监听 SystemChannels.keyboard.removeListener(_handleKeyboardVisibility); } } ``` 在上面的代码中,我们创建了一个 `KeyboardVisibilityController` 类来监听键盘弹起和收回事件。我们首先定义了一个 `ValueNotifier` 类型的对象 `visibilityNotifier`,用于通知键盘是否弹起。然后在构造函数中,我们调用 `SystemChannels.keyboard.addListener` 方法来添加监听器 `_handleKeyboardVisibility`,该方法将在键盘弹起和收回时被调用。在 `_handleKeyboardVisibility` 方法中,我们检查当前视图是否有底部间距,如果有,则表示键盘处于打开状态,否则表示键盘处于关闭状态。最后,我们在 `dispose` 方法中移除了监听器。 使用以上代码后,我们可以在其他 Widget 中监听键盘弹起和收回的事件,如下所示: ```dart class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { @override void initState() { super.initState(); // 监听键盘弹起和收回事件 keyboardVisibilityController.visibilityNotifier.addListener(() { setState(() { isKeyboardVisible = keyboardVisibilityController.visibilityNotifier.value; }); }); } @override void dispose() { // 移除监听 keyboardVisibilityController.visibilityNotifier.removeListener(() { setState(() { isKeyboardVisible = keyboardVisibilityController.visibilityNotifier.value; }); }); super.dispose(); } @override Widget build(BuildContext context) { return Container( child: isKeyboardVisible ? Text('键盘弹起了') : Text('键盘收回了'), ); } } ``` 在上面的代码中,我们在 `initState` 方法中添加了键盘弹起和收回的监听器,并在 `dispose` 方法中移除监听器。在 `build` 方法中,我们根据 `isKeyboardVisible` 变量来显示不同的文本内容,以便在键盘弹起或收回时进行不同的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值