iphone开发:键盘事件
2014-10-31 15:06
183 查看
iphone开发:键盘事件
http://www.2cto.com/kf/201205/133800.html
UIKIT_EXTERN NSString *const UITextInputCurrentInputModeDidChangeNotification__OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_2);
有这个通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeMode:) name:@"UITextInputCurrentInputModeDidChangeNotification" object:nil];
然后实现上面的方法:
-(void) changeMode:(NSNotification *)notification{
NSLog(@"%@",[[UITextInputMode currentInputMode] primaryLanguage]);
}
这样就能拿到值了。
下面是LOG结果:
2011-07-18 14:32:48.565 UIFont[2447:207] zh-Hans //简体汉字拼音
2011-07-18 14:32:50.784 UIFont[2447:207] en-US //英文
2011-07-18 14:32:51.344 UIFont[2447:207] zh-Hans //简体手写
2011-07-18 14:32:51.807 UIFont[2447:207] zh-Hans //简体笔画
2011-07-18 14:32:53.271 UIFont[2447:207] zh-Hant //繁体手写
2011-07-18 14:32:54.062 UIFont[2447:207] zh-Hant //繁体仓颉
2011-07-18 14:32:54.822 UIFont[2447:207] zh-Hant //繁体笔画
通过LOG看到,我们当前只能拿到用户以何种语言输入。不过对于当前的大部分应用来说,这个已经足够了。
直接获取方式:
[[UITextInputMode currentInputMode] primaryLanguage];
其实它返回的是个UIKeyboardInputMode类,这个是私有API 并不只有primaryLanguage这一个属性 看下面
@interface UIKeyboardInputMode : UITextInputMode
{
NSString *primaryLanguage;
NSString *identifier;
NSString *softwareLayout;
NSString *hardwareLayout;
}
+ (id)keyboardInputModeWithIdentifier:(id)arg1;
+ (id)hardwareLayoutFromIdentifier:(id)arg1;
+ (id)softwareLayoutFromIdentifier:(id)arg1;
+ (id)canonicalLanguageIdentifierFromIdentifier:(id)arg1;
@property(retain, nonatomic) NSString *hardwareLayout; // @synthesize hardwareLayout;
@property(retain, nonatomic) NSString *softwareLayout; // @synthesize softwareLayout;
@property(retain, nonatomic) NSString *identifier; // @synthesize identifier;
@property(retain, nonatomic) NSString *primaryLanguage; // @synthesize primaryLanguage;
- (void)dealloc;
- (id)initWithIdentifier:(id)arg1;
@end
就可以根据@property(retain, nonatomic) NSString *hardwareLayout; // @synthesize hardwareLayout;
@property(retain, nonatomic) NSString *softwareLayout; // @synthesize softwareLayout;
@property(retain, nonatomic) NSString *identifier; // @synthesize identifier;
@property(retain, nonatomic) NSString *primaryLanguage; // @synthesize primaryLanguage;
这几个属性判断
NSLog(@"%@",[(UIKeyboardInputMode*)[UITextInputMode currentInputMode] identifier]);
可以根据identifier判断,每种都不同的,你可以log出来看看
根据indentifier
UITextInputMode* inputMode = [UITextInputMode currentInputMode];
NSString* indentifier = [inputMode performSelector:NSSelectorFromString(@"identifier")];
NSLog(@"%@",indentifier);
//简体笔画 zh_Hans-Wubihua@sw=Wubihua;hw=US
//简体手写 zh_Hans-HWR@sw=HWR
//简体拼音 zh_Hans-Pinyin@sw=Pinyin;hw=US
//英语 en_US@hw=US;sw=QWERTY
摘自 云怀空-abel
http://www.2cto.com/kf/201205/133800.html
UIKIT_EXTERN NSString *const UITextInputCurrentInputModeDidChangeNotification__OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_2);
有这个通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeMode:) name:@"UITextInputCurrentInputModeDidChangeNotification" object:nil];
然后实现上面的方法:
-(void) changeMode:(NSNotification *)notification{
NSLog(@"%@",[[UITextInputMode currentInputMode] primaryLanguage]);
}
这样就能拿到值了。
下面是LOG结果:
2011-07-18 14:32:48.565 UIFont[2447:207] zh-Hans //简体汉字拼音
2011-07-18 14:32:50.784 UIFont[2447:207] en-US //英文
2011-07-18 14:32:51.344 UIFont[2447:207] zh-Hans //简体手写
2011-07-18 14:32:51.807 UIFont[2447:207] zh-Hans //简体笔画
2011-07-18 14:32:53.271 UIFont[2447:207] zh-Hant //繁体手写
2011-07-18 14:32:54.062 UIFont[2447:207] zh-Hant //繁体仓颉
2011-07-18 14:32:54.822 UIFont[2447:207] zh-Hant //繁体笔画
通过LOG看到,我们当前只能拿到用户以何种语言输入。不过对于当前的大部分应用来说,这个已经足够了。
直接获取方式:
[[UITextInputMode currentInputMode] primaryLanguage];
其实它返回的是个UIKeyboardInputMode类,这个是私有API 并不只有primaryLanguage这一个属性 看下面
@interface UIKeyboardInputMode : UITextInputMode
{
NSString *primaryLanguage;
NSString *identifier;
NSString *softwareLayout;
NSString *hardwareLayout;
}
+ (id)keyboardInputModeWithIdentifier:(id)arg1;
+ (id)hardwareLayoutFromIdentifier:(id)arg1;
+ (id)softwareLayoutFromIdentifier:(id)arg1;
+ (id)canonicalLanguageIdentifierFromIdentifier:(id)arg1;
@property(retain, nonatomic) NSString *hardwareLayout; // @synthesize hardwareLayout;
@property(retain, nonatomic) NSString *softwareLayout; // @synthesize softwareLayout;
@property(retain, nonatomic) NSString *identifier; // @synthesize identifier;
@property(retain, nonatomic) NSString *primaryLanguage; // @synthesize primaryLanguage;
- (void)dealloc;
- (id)initWithIdentifier:(id)arg1;
@end
就可以根据@property(retain, nonatomic) NSString *hardwareLayout; // @synthesize hardwareLayout;
@property(retain, nonatomic) NSString *softwareLayout; // @synthesize softwareLayout;
@property(retain, nonatomic) NSString *identifier; // @synthesize identifier;
@property(retain, nonatomic) NSString *primaryLanguage; // @synthesize primaryLanguage;
这几个属性判断
NSLog(@"%@",[(UIKeyboardInputMode*)[UITextInputMode currentInputMode] identifier]);
可以根据identifier判断,每种都不同的,你可以log出来看看
根据indentifier
UITextInputMode* inputMode = [UITextInputMode currentInputMode];
NSString* indentifier = [inputMode performSelector:NSSelectorFromString(@"identifier")];
NSLog(@"%@",indentifier);
//简体笔画 zh_Hans-Wubihua@sw=Wubihua;hw=US
//简体手写 zh_Hans-HWR@sw=HWR
//简体拼音 zh_Hans-Pinyin@sw=Pinyin;hw=US
//英语 en_US@hw=US;sw=QWERTY
摘自 云怀空-abel
相关文章推荐
- iPhone开发 当输入的键盘会挡住UITextField的处理事件,当键盘消失的时候界面还原
- iPhone开发 当输入的键盘会挡住UITextField的处理事件
- iPhone开发 当输入的键盘会挡住UITextField的处理事件
- Android开发之道(7)响应键盘事件
- Unity3D 游戏引擎之感应IOS设备旋转与iPhone键盘事件(十六)
- [IPhone开发]如何在输入完成时自动隐藏键盘
- iphone 开发周记2 触摸事件处理与简单绘图。
- iPhone开发指南-事件处理
- iphone应用程序开发指南--触摸事件(笔记 3 )
- iPhone开发中touch的事件随笔
- iPhone开发---取消键盘
- suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
- WAP(wml)开发教程7--WML学习之键盘输入事件
- suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
- iPhone开发中touch的事件随笔
- Unity3D 游戏引擎之感应IOS设备旋转与iPhone键盘事件(十六)
- Silverlight中键盘事件的js开发
- Silverlight中键盘事件的js开发
- [iPhone开发]完成输入后关闭键盘的方法
- iPhone开发--检查UIWebView上Touch/UITapGestureRecognizer事件的最简单的方法(转载)