关于iOS 输入法的一些问题

1、判断输入法是中文还是英文

[[UITextInputMode currentInputMode] primaryLanguage] 
中文 : zh-Hans zh-Hans
英文:on-us
2、获取中英文输入法后(http://hi.baidu.com/johnzhjfly/blog/item/58cebc1355db4b3edc540148.html)

ios5上但切换到中文输入法的时候,在键盘上面会多出一条汉字选择的区域,

因为需要根据虚拟键盘的高度调整界面元素的位置,

查了API说UITextInputMode 可以检测到输入法改变的事件,遗憾的是实际上是

不起作用de 。最后找到一种解决的方法是监听键盘显示的事件,有点怪异哦。

输入模式变的时候,键盘的高度改变了,会发送个UIKeyboardDidShowNotification

消息。

#define KEYBOARD_HEIGHT 216

//chinese input mode under ios5

#define KEYBOARD__IOS5_HEIGHT 252

 

 

 

- (void)keyboardWasShown:(NSNotification*)aNotification     //代理方法

{

    NSDictionary* info = [aNotification userInfo];

    //get keyboard size

    CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

    //adjust ui elements postition here

    if (kbSize.height == KEYBOARD_HEIGHT)

    {

    }

    else if(kbSize.height == KEYBOARD__IOS5_HEIGHT)

    {    

    }

}

 

 

 

- (void)viewDidLoad

{

    [superviewDidLoad];

 

    //register UIKeyboardDidShowNotification, 

    //off course you should unregister the notification somewhere

    [[NSNotificationCenterdefaultCenter] addObserver:self

                                             selector:@selector(keyboardWasShown:)

                                                 name:UIKeyboardDidShowNotificationobject:nil];       //注册监听键盘输入法的消息  

}

转载于:https://www.cnblogs.com/lidechen/archive/2013/05/02/3054787.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值