//
// CCKeyboard.h
// CCFC
//
// Created by xichen on 11-12-23.
// Copyright 2011 ccteam. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "CCCommon.h"
#import "CCConfig.h"
#import "CCDepend.h"
#if CC_ENABLE_PRIVATE_API
// the extern func prototype which are defined in UIKit
CC_EXTERN NSString *UIKeyboardGetCurrentInputMode() _Depended_On_UIKit_;
CC_EXTERN NSString *UIKeyboardLocalizedInputModeName(NSString *name) _Depended_On_UIKit_;
CC_EXTERN NSBundle *UIKeyboardBundleForInputMode(NSString *name) _Depended_On_UIKit_;
CC_EXTERN NSArray *UIKeyboardGetSupportedInputModes() _Depended_On_UIKit_;
CC_EXTERN Class UIKeyboardInputManagerClassForInputMode(NSString *name) _Depended_On_UIKit_;
CC_EXTERN BOOL UIKeyboardLayoutDefaultTypeForInputModeIsASCIICapable(NSString *name) _Depended_On_UIKit_;
CC_EXTERN BOOL UIKeyboardInputModeUsesKBStar(NSString *name) _Depended_On_UIKit_;
#endif
#define NOTIFICATION_KEYBOARD_WILL_SHOW UIKeyboardWillShowNotification
#define NOTIFICATION_KEYBOARD_WILL_HIDE UIKeyboardWillHideNotification
@interface CCKeyboard : NSObject
{
}
+ (UITextInputMode *)currentInputMode __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_2);
+ (NSString *)primaryLanguage __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_2);
+ (CGRect)defaultPortraitKeyboardRect;
+ (UIWindow *)getKeyboardWindow;
// get the view of the keyboard
+ (UIView *)getKeyboardView;
// get the name of the keyboard
+ (NSString *)getKeyboardViewName;
#if CC_ENABLE_PRIVATE_API
+ (NSString *)getCurrentInputMode;
+ (NSString *)getLocalizedInputModeName:(NSString *)inputInternalName;
+ (NSBundle *)getBundleForInputMode:(NSString *)inputInternalName;
+ (NSArray *)getSupportedInputModes;
+ (Class)getInputManagerClassForInputMode:(NSString *)inputInternalName;
+ (BOOL)isLayoutDefaultTypeForInputModeIsASCIICapable:(NSString *)inputInternalName;
+ (BOOL)isInputModeUsesKBStar:(NSString *)inputInternalName;
#endif
@end
//
// CCKeyboard.m
// CCFC
//
// Created by xichen on 11-12-23.
// Copyright 2011 ccteam. All rights reserved.
//
#import "CCKeyboard.h"
@implementation CCKeyboard
+ (UITextInputMode *)currentInputMode
{
return [UITextInputMode currentInputMode];
}
+ (NSString *)primaryLanguage
{
return [[UITextInputMode currentInputMode] primaryLanguage];
}
// default rect in portrait mode
+ (CGRect)defaultPortraitKeyboardRect
{
return CGRectMake(0, 264, 320, 216);
}
// get the window of keyboard
+ (UIWindow *)getKeyboardWindow
{
NSArray *arr = [[UIApplication sharedApplication] windows];
for(UIWindow *temp in arr)
{
if([temp isMemberOfClass:NSClassFromString(@"UITextEffectsWindow")])
return temp;
}
return nil;
}
// get the view of the keyboard
+ (UIView *)getKeyboardView
{
UIWindow *window = [self getKeyboardWindow];
if(window != nil)
{
NSMutableArray *arr = [NSMutableArray array];
NSString *keyboardName = [self getKeyboardViewName];
[window getSubViewIsMemberOf:keyboardName array:arr maxSize:1];
if([arr count])
return [arr objectAtIndex:0];
return nil;
}
return nil;
}
// get the name of the keyboard
+ (NSString *)getKeyboardViewName
{
float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue];
if(sysVer < 3.2)
return @"UIKeyboard";
return @"UIPeripheralHostView";
}
#if CC_ENABLE_PRIVATE_API
+ (NSString *)getCurrentInputMode
{
return (NSString *)UIKeyboardGetCurrentInputMode();
}
+ (NSString *)getLocalizedInputModeName:(NSString *)inputInternalName
{
return (NSString *)UIKeyboardLocalizedInputModeName(inputInternalName);
}
+ (NSBundle *)getBundleForInputMode:(NSString *)inputInternalName
{
return (NSBundle *)UIKeyboardBundleForInputMode(inputInternalName);
}
+ (NSArray *)getSupportedInputModes
{
return (NSArray *)UIKeyboardGetSupportedInputModes();
}
+ (Class)getInputManagerClassForInputMode:(NSString *)inputInternalName
{
return (Class)UIKeyboardInputManagerClassForInputMode(inputInternalName);
}
+ (BOOL)isLayoutDefaultTypeForInputModeIsASCIICapable:(NSString *)inputInternalName
{
return UIKeyboardLayoutDefaultTypeForInputModeIsASCIICapable(inputInternalName);
}
+ (BOOL)isInputModeUsesKBStar:(NSString *)inputInternalName
{
return UIKeyboardInputModeUsesKBStar(inputInternalName);
}
#endif
@end
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!
标签:return,name,UIKit,CC,inputInternalName,ios,NSString,CCKeyboard From: https://blog.csdn.net/cxsjabcabc/article/details/7169931