首页 > 其他分享 >ios CCKeyboard.m

ios CCKeyboard.m

时间:2024-06-23 11:57:32浏览次数:17  
标签:return name UIKit CC inputInternalName ios NSString CCKeyboard

//
//  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

相关文章

  • IOS Swift 从入门到精通: 可选项、展开和类型转换
    文章目录处理缺失数据展开可选值用保护装置解开强制展开隐式解包可选值零合并可选链式调用可选尝试可失败的初始化器类型转换总结处理缺失数据我们已经使用诸如之类的类型Int来保存像5这样的值。但是如果您想存储age用户的属性,如果您不知道某人的年龄,您会怎么做?......
  • 华为电脑BIOS设置系统启动顺序
        最近在华为电脑上装了Windows和Ubuntu双系统后,由于安装失误,导致每次开机后都会进入grub界面。    为了正常进入Windows和Ubuntu系统,在开机进入grub界面前,可以按F12进入bootmanager界面,在此界面下可以选择需要启动的系统。(请原谅我使用手机拍摄屏幕的方......
  • iOS政策解读之一丨App提交审核前注意事项必知
    大家好,我是小编阿文。欢迎您关注我们,经常分享有关Android出海,iOS出海,App市场政策实时更新,互金市场投放策略,最新互金新闻资讯等文章,期待与您共航世界之海。iOS企业出海所面临的主要挑战之一,就是要精读App审核指南,根据出海的目标国家或地区,深刻理解并遵守App审核指南要求,这对于......
  • 开源项目推荐-vue2+element+axios 个人财务管理系统
    文章目录financialmanagement项目简介项目特色项目预览卫星的实现方式:首次进入卫星效果的实现方式:卫星跟随鼠标滑动的随机效果实现方式:环境准备项目启动项目部署项目地址financialmanagement项目简介vue2+element+axios个人财务管理系统是基于vue2+element+ax......
  • 09-axios在Vue中的导入与配置
    09-axios前言首先简单了解什么是Axios?以上完成后就可以使用了前言我们接着上一篇文章08-路由地址的数据获取来讲。下一篇文章10-vuex在Vue中的导入与配置首先简单了解什么是Axios?Axios是一个基于Promise用于浏览器和nodejs的HTTP客户端,本质上也是对......
  • Flutter 借助SearchDelegate实现搜索页面,实现搜索建议、搜索结果,解决IOS拼音问题
    搜索界面使用Flutter自带的SearchDelegate组件实现,通过魔改实现如下效果:搜素建议搜索结果,支持刷新和加载更多IOS中文输入拼音问题界面预览拷贝源码将SearchDelegate的源码拷贝一份,修改内容如下:import'package:flutter/material.dart';import'package:flutter/servic......
  • ios CCEncoding.m
    ////CCEncoding.h//CCFC////Createdbyxichenon11-12-18.//Copyright2011ccteam.Allrightsreserved.//#import<Foundation/Foundation.h>//"陈曦"的unicode编码为://0x480x960xE60x66//UTF8编码为://......
  • 技嘉BIOS超频设置操作路径
    关闭超线程频率电压控制>进阶处理器设置>Hyper_THreading关小核心频率电压控制>GIGABYTEPerfDrive>EcoreDisable防掉压等级频率电压控制>高级电压设定>处理器/VRM设置>CPUVcoreLoadline校正建议turbo温度墙频率电压控制>进阶处理器设置>......
  • iOS 18定了,这个新功能我等了7年
    话说一年一度的苹果开发者大会(WWDC),还有几天就要到来。而熟悉的机友也知道的。若无意外,备受关注的iOS18,也将在WWDC上正式亮相。至于这次果子会上些什么史诗级大招。但我知道,还有很多机友关心的,并不是什么AI功能的更新。而是期盼果子能给iOS18的界面,来个全面焕新......
  • 英伟达开源 3400 亿参数模型;苹果 iOS 18 紧急 SOS 新增实时视频功能丨 RTE 开发者日报
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观......