ios 键盘的一些问题

首先就是获取键盘的尺寸,需要手动调用 registerForKeyboardNotifications 方法,其他两个会自动调用,弹出的键盘高 216(输入英文时候),

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

[self registerForKeyboardNotifications];

UITextView *tv = [[UITextView alloc] initWithFrame:CGRectMake(100, 100, 100, 50)];

[self.view addSubview:tv];

[tv release];

}

- (void) registerForKeyboardNotifications

{

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil];

[[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardDidHideNotification object:nil];

}

- (void) keyboardWasShown:(NSNotification *) notif

{

NSDictionary *info = [notif userInfo];

NSValue *value = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];

CGSize keyboardSize = [value CGRectValue].size;

NSLog(@"keyBoard:%f", keyboardSize.height);  //216

///keyboardWasShown = YES;

}

- (void) keyboardWasHidden:(NSNotification *) notif

{

NSDictionary *info = [notif userInfo];

NSValue *value = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];

CGSize keyboardSize = [value CGRectValue].size;

NSLog(@"keyboardWasHidden keyBoard:%f", keyboardSize.height);

// keyboardWasShown = NO;

}

- (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

系统的一些键盘 监听通知

- (void)viewDidLoad

{

[super viewDidLoad];

//增加监听,当键盘出现或改变时收出消息

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(keyboardWillShow:)

name:UIKeyboardWillShowNotification

object:nil];

//增加监听,当键退出时收出消息

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(keyboardWillHide:)

name:UIKeyboardWillHideNotification

object:nil];

}

//当键盘出现或改变时调用

- (void)keyboardWillShow:(NSNotification *)aNotification

{

//获取键盘的高度

NSDictionary *userInfo = [aNotification userInfo];

NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

CGRect keyboardRect = [aValue CGRectValue];

int height = keyboardRect.size.height;

}

//当键退出时调用

- (void)keyboardWillHide:(NSNotification *)aNotification

{

}

有时候我们想在键盘弹起以后,在上面加上一个完成按钮,主要是通过添加一个toolbar,上面的按钮可以使用系统的,也可以自定义。

UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
    [topView setBarStyle:UIBarStyleBlackTranslucent];

    UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(2, 5, 50, 25);
    [btn addTarget:self action:@selector(dismissKeyBoard) forControlEvents:UIControlEventTouchUpInside];
    [btn setImage:[UIImage imageNamed:@"shouqi"] forState:UIControlStateNormal];
    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]initWithCustomView:btn];
    NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace,doneBtn,nil];
    [topView setItems:buttonsArray];
    [textfield setInputAccessoryView:topView];
-(void)dismissKeyBoard
{
    [textfield resignFirstResponder];
}
时间: 2024-07-29 03:40:06

ios 键盘的一些问题的相关文章

IOS 键盘的显示与关闭,以及移动显示(UITextView处理完整版)

IOS 键盘的显示与关闭 在每一个IOS应用中,几乎不可避免的要进行文本输入操作,例如要求用户填写登陆注册信息,进行话题的评论回复,等等.用到的文本输入组件有UITextField,UITextView,对于这两个组件的相关属性和方法想必大家都很熟悉,但貌似对于键盘的显示或隐藏过程貌似常常不是很清楚,其实本人也是一知半解,所以趁此做简单的总结,基本上以下描述出自于官方的文档,并没有什么更改. 1.开启键盘面板 当用户触击某一个view时,系统会自动指定该view为第一响应对象(first res

ios 键盘处理

IOS 解决键盘挡住输入框的问题 IQKeyBoardManager http://code4app.com/ios/IQKeyBoardManager/524260bf6803fa7a41000001 完善-- iOS之键盘挡住输入框的解决方法 ios输入框被键盘挡住的解决办法 关于IOS键盘遮住输入框以及关闭的方法. IOS学习笔记36—解决键盘遮挡输入框(UITextField)问题 完美解决ios4与ios5输入框随键盘移动问题 ios 键盘处理,布布扣,bubuko.com

ios ---键盘的监听事件

//在view将要出现的时候重载viewWillAppear方法添加通知 监听事件 keyboardWillShow:  keyboardWillHide: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:

iOS 键盘自适应(IQKeyboardManager)使用小结

IQKeyboardManager Github地址 经常在开发一个应用程序,我们遇到了一个问题,iPhone的键盘上滑覆盖的UITextField / UITextView.IQKeyboardManager可以防止键盘滑动问题和覆盖UITextField / UITextView无需你输入任何代码,不需要额外的设置要求.使用IQKeyboardManager你只需要添加源文件到你的项目. 主要特点 1)无代码 2)自动工作 3)没有更多的UIScrollView4)没有更多的子类 5)没有更

IOS键盘样式风格有关设置

一.键盘风格 UIKit框架支持8种风格键盘. typedef  enum  { UIKeyboardTypeDefault,                 // 默认键盘:支持所有字符 UIKeyboardTypeASCIICapable,            // 支持ASCII的默认键盘 UIKeyboardTypeNumbersAndPunctuation,   // 标准电话键盘,支持+*#等符号 UIKeyboardTypeURL,                     // 

IOS键盘的相关设置(UITextfield)

http://blog.csdn.net/h3c4lenovo/article/details/8447661 一.键盘风格 UIKit框架支持8种风格键盘. typedef enum { UIKeyboardTypeDefault,                // 默认键盘:支持所有字符 UIKeyboardTypeASCIICapable,           // 支持ASCII的默认键盘 UIKeyboardTypeNumbersAndPunctuation,  // 标准电话键盘,

iOS键盘弹出高度以及动画时间获取

原文链接: iOS键盘弹出高度以及动画时间获取 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

iOS键盘中英文切换键盘高度获取通知方法

iOS键盘中英文切换键盘高度获取通知方法, 有需要的朋友可以参考下. 注册通知 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotific

iOS 键盘的监听 调整view的位置

iOS在处理键盘的出现和消失时需要监听UIKeyboardWillChangeFrameNotifications/UIKeyboardDidHideNotifications - (void)viewDidLoad { [super viewDidLoad]; //添加监听 键盘消失 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDown) name:UIKeyboardDid

IOS键盘输入屏幕上移

在IOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮.这样的话按钮的事件也就触发不了,最好的解决办法就是当输入这些信息的时候让整个屏幕上移一个键盘的位置,或者上移到指定的位置. 首先一般输入的话都用的是UITextField,所以要监听用户什么时候开始输入和什么时候结束输入,直接设置代理代理就行了,要遵受 UITextFieldDelegate协议. //遵循协议 @interface Vi