ios CCKeyboard.m

//
//  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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值