iOS8数字键盘加左下角完成button

iOS8数字键盘加左下角完成button

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

iOS8数字键盘加左下角完成button的核心代码如下面:

- (void)addDoneButtonToNumPadKeyboard
{
    UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
    if (systemVersion < 8.0){
        doneButton.frame = CGRectMake(0, 163, 106, 53);
    }else{
        doneButton.frame = CGRectMake(0, SCREEN_SIZE.height-53, 106, 53);
    }
    doneButton.tag = NUM_PAD_DONE_BUTTON_TAG;
    doneButton.adjustsImageWhenHighlighted = NO;
    [doneButton setTitle:@"完毕" forState:UIControlStateNormal];
    [doneButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
    
    NSArray *windowArr = [[UIApplication sharedApplication] windows];
    if (windowArr != nil && windowArr.count > 1){
        UIWindow *needWindow = [windowArr objectAtIndex:1];
        UIView *keyboard;
        for(int i = 0; i < [needWindow.subviews count]; i++) {
            keyboard = [needWindow.subviews objectAtIndex:i];
            NSLog(@"%@", [keyboard description]);
            if(([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES) || ([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) || ([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES)){
                
                UIView *doneButtonView = [keyboard viewWithTag:NUM_PAD_DONE_BUTTON_TAG];
                if (doneButtonView == nil){
                    [keyboard addSubview:doneButton];
                }
            }
        }
    }
}

-(void)removeDoneButtonFromNumPadKeyboard
{
    UIView *doneButton = nil;

    NSArray *windowArr = [[UIApplication sharedApplication] windows];
    if (windowArr != nil && windowArr.count > 1){
        UIWindow *needWindow = [windowArr objectAtIndex:1];
        UIView *keyboard;
        for(int i = 0; i < [needWindow.subviews count]; i++) {
            keyboard = [needWindow.subviews objectAtIndex:i];
            if(([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES) || ([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) || ([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES)){
                doneButton = [keyboard viewWithTag:NUM_PAD_DONE_BUTTON_TAG];
                if (doneButton != nil){
                    [doneButton removeFromSuperview];
                }
            }
        }
    }
}

注:

1.iOS8之后,键盘view的description变为以<UIInputSetContainerView开头,所以须要在推断的逻辑中加上这一项。

2.iOS8之后。键盘view的大小变成了整个屏幕的大小。所以须要对button加入的位置进行适配。

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116821.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 酒店管理系统-详细设计说明书

    酒店管理系统-详细设计说明书
    详细设计说明书1引言1.1编写目的
    本文档为**酒店管理系统详细设计说明书,为**酒店管理系统编码的主要依据。1.2背景
    本软件全称为**酒店管理系统。
    软件适用于普通二星级酒店、宾馆。 2界面功能描述2.0主界面
    系统运行主框架,实时显示房态信息。

     2.1散客开单
    完成对散客的开单任务。最多能追加五个相同类型的房间。

     2.2团体开单
    完成对团体宾客的开单任务。房间数没有限制,可同时追加不

    2022年5月12日
  • Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe

    Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe

    2021年9月26日
  • VS Code 迎来新对手?JetBrains发布新一代轻量编辑器——Fleet

    VS Code 迎来新对手?JetBrains发布新一代轻量编辑器——Fleet11月29日,Jetbrains官网发布一个重大消息,即公布了一个轻量级编辑器——Fleet。????https://www.jetbrains.com/zh-cn/fleet/Fleet作为一个功能齐全的编辑器启动,具有语法高亮显示、简单的代码补全,以及用户对一个编辑器期待的所有功能,比如智能补全、重构、导航、调试等功能。话不多说,下面让我们了解一下Fleet新功能吧。Fleet适用于多种场景和多类编程语言JetBrains官方认为开发者通常在不同的项目中会使用到不同的技术,有时在单个项目

    2022年6月11日
  • navicat for mysql 15 激活码【2021.8最新】

    (navicat for mysql 15 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsa…

    2022年3月26日
  • ttl低电平接大电阻_3.4 TTL门电路

    ttl低电平接大电阻_3.4 TTL门电路3.4TTL门电路1.双极性三极管的开关特性(静态)图1在数字电路中,三极管作为开关元件,主要工作在饱和和截止两种开关状态,放大区只是极短暂的过渡状态。2.三极管的开关时间(动态特性)图2(1)开启时间ton:三极管从截止到饱和所需的时间。ton=td+trtd:延迟时间tr:上升时间(2)关闭时间toff:三极管从饱和到截止所需的时间。toff=ts+tf…

    2022年10月30日
  • js将docx转换为html,js实现word转换为html[通俗易懂]

    js将docx转换为html,js实现word转换为html[通俗易懂]前言最近接到一个需求,实现上传一个word文档,然后将该word转换成html丢给服务端存上。进行技术调研后发现有三种方法可以实现这个功能:ActiveXObject、docx2html、mammoth。IE的ActiveXObjectvaroWordApp=newActiveXObject(“Word.Application”);varoDocument=oWordApp.Docum…

    2022年7月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号