键盘优化处理方法、存储介质、电子设备及系统与流程

文档序号:14990073发布日期:2018-07-20 22:02阅读:114来源:国知局

本发明涉及涉及移动端应用技术领域,具体涉及一种键盘优化处理方法、存储介质、电子设备及系统。



背景技术:

随着手机移动端的快速发展,手机移动端应用软件产品的设计不再仅限于功能的实现,在实际开发中,很多时候用户都需要显示键盘,显示键盘的时候有时候需要调整界面的样式,修改界面的的子视图的位置,当需要根据键盘的弹出和隐藏来调整界面的时候,常规的方案是每个控制器都定义一个通知来监听键盘弹出和隐藏的事件,当弹出和隐藏时触发相应的回调函数。但是,每个控制器都进行监听和注册通知效率较低。且一般项目中有几百个控制器,如果每个控制器都有类似键盘弹出移动子视图的需要,需要几百次监听通知,这样整个手机移动端应用软件需要设置有大量的重复代码。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种键盘优化处理方法、存储介质、电子设备及系统,简化了使用手机移动端应用软件监听通知所需开发的代码。

为达到以上目的,本发明采取的技术方案是:一种键盘优化处理方法:

在控制器的分类中创建键盘参数调用函数、第一回调函数和第二回调函数,并定义所述键盘参数调用函数的参数;所述键盘参数调用函数的参数包括键盘坐标值参数、键盘位置变化参数和键盘动作结束参数;所述第一回调函数用于回调所述键盘坐标值参数,所述第二回调函数用于回调所述键盘位置变化参数;

通过键盘参数调用函数获取系统的通知中心并监听键盘通知,再将监听到的键盘通知通过回调方法反馈至所述控制器的分类,允许每个控制器复用;

在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,并根据收到的键盘通知调用所述第一回调函数和第二回调函数实现键盘的弹出或隐藏。

在上述技术方案的基础上,所述键盘坐标值参数包括键盘变化前坐标值,键盘弹出需要的时间和当前的键盘是否弹出;键盘位置变化参数包括键盘变化后坐标值和位置变化需要的时间;键盘动作结束参数用于表示键盘弹出或隐藏动作结束。

在上述技术方案的基础上,在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,从键盘通知中获取键盘变化前坐标值、键盘弹出需要的时间和键盘动作结束参数并使用第一回调函数回调给控制器;从键盘通知中获取键盘变化后坐标值、位置变化需要的时间,并将键盘变化后坐标值、位置变化需要的时间和当前键盘的状态是弹出还是隐藏使用第二回调函数回调给控制器。

在上述技术方案的基础上,所述键盘参数调用函数调用通知管理类nsnotificationcenter调用获取系统通知的方法获取系统的通知中心,使用addobserver函数监听键盘通知。

本发明还公开了一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现键盘优化处理方法。

本发明还公开了一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现键盘优化处理方法。

本发明还公开了一种键盘优化处理系统,包括:

函数创建模块,其用于在控制器的分类中创建键盘参数调用函数、第一回调函数和第二回调函数,并定义所述键盘参数调用函数的参数;所述键盘参数调用函数的参数包括键盘坐标值参数、键盘位置变化参数和键盘动作结束参数;所述第一回调函数用于回调所述键盘坐标值参数,所述第二回调函数用于回调所述键盘位置变化参数;

参数获取模块,其用于通过键盘参数调用函数获取系统的通知中心并监听键盘通知,再将监听到的键盘通知通过回调方法反馈至所述控制器的分类,允许每个控制器复用;

键盘动作模块,其用于在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,并根据收到的键盘通知调用所述第一回调函数和第二回调函数实现键盘的弹出或隐藏。

在上述技术方案的基础上,所述键盘坐标值参数包括键盘变化前坐标值,键盘弹出需要的时间和当前的键盘是否弹出;键盘位置变化参数包括键盘变化后坐标值和位置变化需要的时间;键盘动作结束参数用于表示键盘弹出或隐藏动作结束。

在上述技术方案的基础上,所述参数获取模块用于在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,从键盘通知中获取键盘变化前坐标值、键盘弹出需要的时间和键盘动作结束参数并使用第一回调函数回调给控制器;从键盘通知中获取键盘变化后坐标值、位置变化需要的时间,并将键盘变化后坐标值、位置变化需要的时间和当前键盘的状态是弹出还是隐藏使用第二回调函数回调给控制器。

在上述技术方案的基础上,所述参数获取模块用于调用通知管理类nsnotificationcenter调用获取系统通知的方法获取系统的通知中心,使用addobserver函数监听键盘通知。

与现有技术相比,本发明的优点在于:

本发明通过在控制器的分类创建键盘参数调用函数以及第一回调函数和第二回调函数,仅需要监听系统的键盘通知,将监听到的键盘通知中的参数回调给控制器的分类,允许每个控制器复用,再通过第一回调函数和第二回调函数和控制器实现键盘的弹出和隐藏的所有动作,无需在每个控制器都定义一个通知来监听键盘弹出和隐藏的事件,简化了使用手机移动端应用软件监听通知所需开发的代码。

附图说明

图1为本发明实施例中键盘优化处理方法的流程示意图;

图2为本发明实施例中键盘优化处理系统的结构示意图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例提供一种键盘优化处理方法:

在控制器的分类中创建键盘参数调用函数、第一回调函数和第二回调函数,并定义键盘参数调用函数的参数;键盘参数调用函数的参数包括键盘坐标值参数、键盘位置变化参数和键盘动作结束参数;第一回调函数用于回调键盘坐标值参数,第二回调函数用于回调键盘位置变化参数;

通过键盘参数调用函数获取系统的通知中心并监听键盘通知,再将监听到的键盘通知通过回调方法反馈至控制器的分类,允许每个控制器复用;

在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,并根据收到的键盘通知调用第一回调函数和第二回调函数实现键盘的弹出或隐藏。

本发明通过在控制器的分类创建键盘参数调用函数以及第一回调函数和第二回调函数,仅需要监听系统的键盘通知,将监听到的键盘通知中的参数回调给控制器的分类,允许每个控制器复用,再通过第一回调函数和第二回调函数和控制器实现键盘的弹出和隐藏的所有动作,无需在每个控制器都定义一个通知来监听键盘弹出和隐藏的事件,简化了使用手机移动端应用软件监听通知所需开发的代码。

其中,创建键盘参数调用函数、第一回调函数和第二回调函数,并定义键盘参数调用函数的参数的具体实现过程如下:

1)键盘参数调用函数的声明

定义键盘参数调用函数的声明,这个函数的名字是an_subscribeanimations,这个函数需要三个参数,

第一个参数是类型是keyboardblock类型,其对应的回调函数是第一回调函数,第一回调函数的名称是beforeanimations;

第二个参数的类型是animationboardblock类型,其对应的回调函数是第二回调函数,第二回调函数的名称是animations;

第三个参数是键盘动作结束参数,一个completanimationblock类型。

2)编写键盘参数调用函数的实现

上面完成了这个函数的声明,现在编写这个函数的实现,创建的这个函数内部是通过分类来实现的。此处之所以使用分类,是因为很多键盘需要弹出的页面是需要使用键盘的,创建一个基于控制器的分类,允许所有控制器调用,可以更方便和更快捷的使用本方案。具体方法为:在这个函数内部使用关联对象的方法将上面传入的三个参数都保存起来。因为分类中无法添加属性来生成set方法和get方法,只有使用关联对象的方法来实现。

在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,从键盘通知中获取键盘变化前坐标值、键盘弹出需要的时间和键盘动作结束参数并使用第一回调函数回调给控制器;从键盘通知中获取键盘变化后坐标值、位置变化需要的时间,并将键盘变化后坐标值、位置变化需要的时间和当前键盘的状态是弹出还是隐藏使用第二回调函数回调给控制器。

键盘坐标值参数包括键盘变化前坐标值,键盘弹出需要的时间和当前的键盘是否弹出;键盘位置变化参数包括键盘变化后坐标值和位置变化需要的时间;键盘动作结束参数用于表示键盘弹出或隐藏动作结束。

其中:

键盘变化前坐标值是cgrect类型的rect;

键盘弹出需要的时间是nstimeinterval类型的duration;

当前的键盘是否弹出是布尔类型的isshowing;

键盘变化后坐标值是cgrect类型的rect;

位置变化需要的时间是nstimeinterval类型的duration;

键盘动作结束参数是布尔类型的finished。

此时使用获取关联对象的方法从键盘通知中获取键盘变化前坐标值、键盘弹出需要的时间和键盘动作结束参数,获取关联对象的方法是objc_getassociatedobject。

键盘参数调用函数调用通知管理类nsnotificationcenter调用获取系统通知的方法获取系统的通知中心,使用addobserver函数监听键盘通知。

具体的说,使用addobserver函数去监听通知,监听通知需要一个通知名,需要添加监听者,就是设置谁监听这个通知,设置为self,self代表当前的控制器监听这个通知。通知名是uikeyboardwillshownotification,收到的回调是shownotification;通知名是uikeyboardwillhidenotification,收到的回调是handlenotification。

本发明实施例还公开了一种存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时实现键盘优化处理方法。

本发明实施例还公开了一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现键盘优化处理方法。

参见图2所示,本发明实施例还公开了一种键盘优化处理系统,包括:

函数创建模块,其用于在控制器的分类中创建键盘参数调用函数、第一回调函数和第二回调函数,并定义键盘参数调用函数的参数;键盘参数调用函数的参数包括键盘坐标值参数、键盘位置变化参数和键盘动作结束参数;第一回调函数用于回调键盘坐标值参数,第二回调函数用于回调键盘位置变化参数;

参数获取模块,其用于通过键盘参数调用函数获取系统的通知中心并监听键盘通知,再将监听到的键盘通知通过回调方法反馈至控制器的分类,允许每个控制器复用;

键盘动作模块,其用于在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,并根据收到的键盘通知调用第一回调函数和第二回调函数实现键盘的弹出或隐藏。

键盘坐标值参数包括键盘变化前坐标值,键盘弹出需要的时间和当前的键盘是否弹出;键盘位置变化参数包括键盘变化后坐标值和位置变化需要的时间;键盘动作结束参数用于表示键盘弹出或隐藏动作结束。

参数获取模块用于在控制器收到键盘通知后,使用键盘动作函数获取当前键盘的状态是弹出还是隐藏,从键盘通知中获取键盘变化前坐标值、键盘弹出需要的时间和键盘动作结束参数并使用第一回调函数回调给控制器;从键盘通知中获取键盘变化后坐标值、位置变化需要的时间,并将键盘变化后坐标值、位置变化需要的时间和当前键盘的状态是弹出还是隐藏使用第二回调函数回调给控制器。

参数获取模块用于调用通知管理类nsnotificationcenter调用获取系统通知的方法获取系统的通知中心,使用addobserver函数监听键盘通知。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1