一种虚拟键盘的交互方法及装置与流程

文档序号:13003945阅读:215来源:国知局
一种虚拟键盘的交互方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种虚拟键盘的交互方法及装置。



背景技术:

随着计算机技术的不断发展,使用触摸屏的移动终端越来越多。由于使用了触摸屏,因此传统的实体键盘相应地发展出了虚拟键盘。

一般的,虚拟键盘可以是由具有预设功能键的工具栏和展示所述预设功能键对应内容的展示区域构成。虚拟键盘的展示区域一般用于展示所述虚拟键盘的预设按钮对应的内容。例如,当用户点击虚拟键盘上的表情按钮后,展示区域会显示表情按钮对应的表情内容。

然而,虚拟键盘的交互方式存在一定的不足,例如在虚拟键盘的展示区域高度的变化、虚拟键盘中输入框的高度变化。现有技术中,虚拟键盘的展示区域高度、输入框高度都是预先通过硬编码的方式实现的,无法做到高度的自适应。



技术实现要素:

本申请提供的一种虚拟键盘的交互方法及装置,以解决现有技术中存在的虚拟键盘中展示区域高度无法自适应的问题。

根据本申请实施例提供的一种虚拟键盘的交互方法,所述虚拟键盘由具有预设功能键的工具栏和展示所述预设功能键对应内容的展示区域构成,所述方法包括:

设置用于监测预设功能键的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为预设功能键;

启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到预设功能键被选中的情况下返回回调通知;

在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为预设功能键;

在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,根据所述预设功能键对应内容的大小,调整所述展示区域的高度。

可选的,所述根据所述预设功能键对应内容的大小,调整所述展示区域的高度,具体包括:

确定所述预设功能键对应内容的高度;

将所述展示区域的高度调整为所确定的高度;

在所述调整后的展示区域内显示所述预设功能键对应内容。

可选的,所述预设功能键为表情按钮的情况下,所述根据所述预设功能键对应内容的大小,调整所述展示区域的高度,具体包括:

确定所述表情按钮对应表情内容的高度;

将所述展示区域的高度调整为所确定的高度;

在所述调整后的展示区域内显示所述表情按钮对应表情内容。

可选的,所述表情基于collectionview实现。

可选的,所述预设功能键为键盘按钮的情况下,所述根据所述预设功能键对应内容的大小,调整所述展示区域的高度,具体包括:

确定所述键盘按钮对应键盘内容的高度;

将所述展示区域的高度调整为所确定的高度;

在所述调整后的展示区域内显示所述键盘按钮对应键盘内容。

可选的,所述预设功能键为语音按钮的情况下,所述根据所述预设功能键对应内容的大小,调整所述展示区域的高度,具体包括:

确定所述语音按钮对应内容的高度;

将所述展示区域的高度调整为所确定的高度;

在所述调整后的展示区域内显示所述预设功能键对应内容。

可选的,所述方法还包括:

在关闭所述虚拟键盘的情况下,删除所述用于监测预设功能键的键值监听器kvo。

根据本申请实施例提供的一种虚拟键盘的交互方法,所述虚拟键盘由具有输入框的工具栏和展示键盘内容的键盘区域构成,所述方法包括:

设置用于监测输入框中内容长度变化的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为输入框中内容的长度;

启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到输入框中内容变化的情况下返回回调通知;

在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为输入框中内容的长度;

在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,根据所述输入框中内容的长度调整所述输入框的高度。

可选的,根据所述输入框中内容的长度调整所述输入框的高度,具体包括:

根据所述输入框中内容的长度以及所述输入框每一行的长度,计算所述输入框显示所述内容所需的高度;

将所述输入框的高度调整为所计算出的高度。

可选的,在所述根据所述输入框中内容的长度以及所述输入框每一行的长度,计算所述输入框显示所述内容所需的高度之后,所述方法还包括:

判断所计算出的高度是否达到预设高度;

在所计算出的高度未超过预设高度的情况下,执行将所述输入框的高度调整为所计算出的高度的步骤。

可选的,所述方法还包括:

在所计算出的高度超过预设高度的情况下,将所述输入框的高度调整为所述预设高度,并且显示所述输入框的滚动条。

可选的,在所述根据所述输入框中内容的长度调整所述输入框的高度之后,所述方法还包括:

通过uiview块动画,将输入框中的光标定位于输入内容之后。

可选的,所述方法还包括:

删除所述用于监测输入框中内容长度变化的键值监听器kvo。

可选的,所述虚拟键盘还具有发送按钮,所述发送按钮根据输入框输入状态的变化而变化。

可选的,所述发送按钮根据输入框输入状态的变化而变化,具体包括:

在所述虚拟键盘初始化的情况下,将所述发送按钮设置为禁用;

在所述输入框中存在未发送内容的情况下,将所述发送按钮设置为可用;

在所述输入框中内容已发送的情况下,将所述发送按钮设置为禁用。

可选的,所述输入框中内容包括文本内容和/或图像内容。

根据本申请实施例提供的一种虚拟键盘的交互装置,所述虚拟键盘由具有预设功能键的工具栏和展示所述预设功能键对应内容的展示区域构成,所述装置包括:

设置键值监听器单元,设置用于监测预设功能键的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为预设功能键;

启动通知回调单元,启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到预设功能键被选中的情况下返回回调通知;

判断单元,在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为预设功能键;

调整高度单元,在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,根据所述预设功能键对应内容的大小,调整所述展示区域的高度。

根据本申请实施例提供的一种虚拟键盘的交互装置,所述虚拟键盘由具有输入框的工具栏和展示键盘内容的键盘区域构成,所述装置包括:

设置键值监听器单元,设置用于监测输入框中内容长度变化的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为输入框中内容的长度;

启动通知回调单元,启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到输入框中内容变化的情况下返回回调通知;

判断单元,在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为输入框中内容的长度;

调整高度单元,在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,根据所述输入框中内容的长度调整所述输入框的高度。

通过本申请实施例,设置一个用于监测预设功能键的键值监听器kvo,所述键值监听器kvo在监测到预设功能键被选中的情况下返回回调通知;在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,可以实时根据所述被选中的预设功能键对应内容的高度自动地调整所述展示区域的高度。如此,展示区域可以实现自适应,即自动根据被选中的预设功能键对应内容的高度来改变展示区域的高度,进而提高了用户体验;

以及,设置一个用于监测输入框中内容长度变化的键值监听器kvo,所述键值监听器kvo在监测到输入框中内容变化的情况下返回回调通知;在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,根据所述输入框中内容的长度调整所述输入框的高度。如此,输入框可以实现自适应,即自动根据用户输入内容的长度来改变输入框的高度,进而提高了用户体验。

附图说明

图1是本申请一实施例提供的聊天页面的示意图;

图2a是本申请一实施例提供的展示区域展示表情内容的示意图;

图2b是本申请一实施例提供的展示区域展示键盘内容的示意图;

图3是现有技术的展示区域中内容切换的示意图;

图4是本申请一实施例提供的虚拟键盘的交互方法的流程图;

图5是本申请一实施例提供的展示区域中内容切换的示意图;

图6是本申请一实施例提供的展示区域中内容切换的示意图;

图7是本申请一实施例提供的虚拟键盘的交互方法的流程图;

图8是本申请一实施例提供的聊天页面的示意图;

图9是本申请一实施例提供的虚拟键盘中输入框的示意图;

图10a是本申请一实施例提供的虚拟键盘初始化时发送按钮的示意图;

图10b是本申请一实施例提供的输入框中存在未发送内容时发送按钮的示意图;

图10c是本申请一实施例提供的输入框中内容已发送时发送按钮的示意图;

图11是本申请提供的虚拟键盘的交互装置所在设备的一种硬件结构图;

图12是本申请一实施例提供的虚拟键盘的交互装置的模块示意图;

图13是本申请提供的虚拟键盘的交互装置所在设备的一种硬件结构图;

图14是本申请一实施例提供的虚拟键盘的交互装置的模块示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

如前所示,虚拟键盘的交互方式存在一定的不足,特别是在虚拟键盘的展示区域高度的变化。现有技术中,虚拟键盘的展示区域高度是预先通过硬编码的方式实现的,无法做到高度的自适应。

举例说明,如图1所示的聊天页面的示意图。一般的,聊天界面可以包括聊天内容区域11和虚拟键盘12;其中,所述虚拟键盘12通常可以由工具栏121以及展示区域122构成。通常,所述工具栏121中会设置一些预设功能键,例如语音按钮1211、表情按钮1212、键盘按钮1213等。用户点击不同的预设功能键,虚拟键盘12都可以在所述展示区域122中展示所述预设功能键对应内容。

如图2a所示,在用户点击表情按钮后,虚拟键盘的展示区域就会切换到表情内容。

如图2b所示,在用户点击键盘按钮后,虚拟键盘的展示区域就会切换到键盘内容。

现有技术中,由于展示区域的高度是预先通过硬编码的方式设置的,因此展示区域的高度是一个固定值。在不同预设功能键对应内容之间切换时,无法根据实际内容的多少,调整展示区域的高度。

如图3所示,在用户点击表情按钮后,展示区域中显示的内容从键盘内容切换为表情内容。图3中展示区域内显示的表情数量并不多,其实完全无需这么大的展示区域;但是由于展示区域的高度无法做到自适应,展示区域的高度依然和显示键盘内容的时候一样高。这样展示区域太大的情况相应会减少聊天内容区域,使得能够同时显示的聊天内容较少,从而影响用户体验。

为了解决上述问题,请参见图4,为本申请一实施例提供的虚拟键盘的交互方法的流程图,所述虚拟键盘由具有预设功能键的工具栏和展示所述预设功能键对应内容的展示区域构成,所述方法包括:

步骤210:设置用于监测预设功能键的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为预设功能键。

本实施例中,所述键值监听器kvo(key-valueobserving),可以用于监测指定对象的某种属性值,所述指定对象的属性值一般可以称之为被观察者(可以用keypath表示);当所述指定对象的属性值被修改后,则所述键值监听器kvo可以向指定的观察者(可以用observer表示)返回一个回调通知。

以下介绍键值监听器kvo的设置过程:

键值监听器kvo中,需要指定观察者observer、被观察者keypath;以及其它的参数例如属性配置options、上下文context;

其中,所述options具体可以包括如下4种:

nskeyvalueobservingoptionnew,用于记录被观察者keypath改变后的属性值;

nskeyvalueobservingoptionold,用于记录被观察者keypath改变前的属性值;

nskeyvalueobservingoptioninitial,用于使得设置kvo后立刻触发启动kvo的通知回调方法;

nskeyvalueobservingoptionprior,用于控制kvo在被观察者keypath的属性值在改变前也发送回调通知;也就是说,如果设置了参数则对于被观察者keypath的属性值改变前和改变后都需要发送回调通知。

其中,所述context,用于区分不同的通知。

本实施例中,对于用于监测预设功能键的键值监听器kvo,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为预设功能键,即keypath为“self.text.chattoolbar.frame”。

步骤220:启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到预设功能键被选中的情况下返回回调通知。

本实施例中,由于被观察者为预设功能键;因此,在预设功能键被选中后,所述键值监听器kvo就被监测到,从而向观察者即工具栏返回一个回调通知。

步骤230:在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为预设功能键。

由于同一个观察者可以存在多个不同的键值监听器kvo;因此,本实施例中,针对监测预设功能键,需要在接收到回调通知后,判断是不是所述用于监测预设功能键的键值监听器kvo返回的回调通知。

具体地,可以通过判断所述通知中的观察者是否为工具栏,被观察者是否为预设功能键。

如果所述通知中的观察者是为工具栏,被观察者是为预设功能键,说明该通知是用于监测预设功能键的键值监听器kvo返回的,从而可以执行后续步骤240;

如果所述通知中的观察者不是为工具栏和/或被观察者不是为预设功能键;说明该通知不是用于监测预设功能键的键值监听器kvo返回的,可以不对该通知做任何处理。

步骤240:在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,根据所述预设功能键对应内容的大小,调整所述展示区域的高度。

本实施例中,在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,说明预设功能键被选中,可能需要对展示区域的高度进行调整。

具体地,根据所述预设功能键对应内容的大小,调整所述展示区域的高度,可以包括如下步骤:

a1:确定所述预设功能键对应内容的高度;

a2:将所述展示区域的高度调整为所确定的高度;

a3:在所述调整后的展示区域内显示所述预设功能键对应内容。

在一个具体地实施例中,所述预设功能键为表情按钮的情况下,根据所述预设功能键对应内容的大小,调整所述展示区域的高度,具体包括:

确定所述表情按钮对应表情内容的高度;

将所述展示区域的高度调整为所确定的高度;

在所述调整后的展示区域内显示所述表情按钮对应表情内容。

如图5所示的,展示区域中内容切换的示意图。图5中,在切换之前,虚拟键盘的展示区域中显示的是键盘内容;当用户点击了工具栏中的表情按钮之后,展示区域就会切换到对应的表情内容;在切换后,可以看出,由于展示区域高度具有自适应,因此可以根据表情内容的大小,减少了展示区域的高度。另外,由于展示区域的高度降低了,因此聊天内容区域的高度相应增大了,如此可以同时显示更多的聊天内容,提高用户体验。

值得一提的是,针对表情按钮的情况下,所述表情内容可以是基于collectionview实现的。在实际应用中,collectionview可以有效减少表情所占内容空间,从而提高内容空间的利用率。此外,用于展示表情内容的展示区域可以采用scrollview和collectionview。在技术实现上可以使得逻辑更加清晰,便于后期维护。

在一个具体地实施例中,所述预设功能键为键盘按钮的情况下,根据所述预设功能键对应内容的大小,调整所述展示区域的高度,具体包括:

确定所述键盘按钮对应键盘内容的高度;

将所述展示区域的高度调整为所确定的高度;

在所述调整后的展示区域内显示所述键盘按钮对应键盘内容。

在一个具体地实施例中,所述预设功能键为语音按钮的情况下,根据所述预设功能键对应内容的大小,调整所述展示区域的高度,具体包括:

确定所述语音按钮对应内容的高度;

将所述展示区域的高度调整为所确定的高度;

在所述调整后的展示区域内显示所述预设功能键对应内容。

在实际应用中,一般的,语音按钮没有对应内容。因此,可以确定所述语音按钮对应内容的大小为0;以及,显示所述语音按钮对应内容的展示区域高度也为0。

如图6所示的,展示区域中内容切换的示意图。图6中,在切换之前,虚拟键盘的展示区域中显示的是键盘内容;当用户点击了工具栏中的语音按钮之后;由于语音按钮没有对应内容,计算后展示区域的高度为0;因此,切换后的虚拟键盘就不显示展示区域了。这样,大大增加了聊天内容区域的大小,从而可以同时显示更多的聊天内容。

通过本实施例,设置一个用于监测预设功能键的键值监听器kvo,所述键值监听器kvo在监测到预设功能键被选中的情况下返回回调通知;在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,可以实时根据所述被选中的预设功能键对应内容的高度自动地调整所述展示区域的高度。如此,展示区域可以实现自适应,即自动根据被选中的预设功能键对应内容的高度来改变展示区域的高度,进而提高了用户体验。

在本申请应用于即时通讯软件中时,所述即时通讯界面分为上下两部分,上部分显示聊天内容,下部分显示虚拟键盘,则在所述根据所述预设功能键对应内容的键盘区域,调整虚拟键盘的布局之后,所述方法还包括:

通过uiview块动画,将显示聊天内容的区域底部定位于最后一行的聊天内容。

如图所示,每一次展示区域的高度变化后,相应地,聊天内容区域的高度也会相应变化。本实施例,可以始终保证聊天内容区域底部定位于最后一行的聊天内容。这样处理可以更符合用户输入习惯,提高用户体验。

基于图4所示实施例的基础上,本申请的另一个具体地实施例中,所述方法还可以包括:

在关闭所述虚拟键盘的情况下,删除所述用于监测预设功能键的键值监听器kvo。

如果用户退出当前的聊天页面,则虚拟键盘会被关闭,为了避免资源不被泄露,需要删除所述用于监测预设功能键的键值监听器kvo;否则,由于键值监听器kvo一直存在,会导致资源泄露。

为了解决虚拟键盘中输入框高度无法自适应的问题,请参见图7,为本申请一实施例提供的虚拟键盘的交互方法的流程图,所述虚拟键盘由具有输入框的工具栏和展示键盘内容的键盘区域构成,所述方法包括:

步骤310:设置用于监测输入框中内容长度变化的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为输入框中内容的长度;

本实施例中,所述键值监听器kvo与上述实施例相同,此处不再赘述。

如图8所示的聊天页面的示意图中,该聊天界面可以包括聊天内容区域21和虚拟键盘22;其中,所述虚拟键盘22有可以由工具栏221以及展示键盘内容的键盘区域222构成。所述工具栏221中一般可以具有一个输入框2211。用户可以通过键盘区域222在所述输入框2211内输入聊天内容。

本实施例中,对于用于监测输入框中内容长度变化的键值监听器kvo,所述键值监听器kvo的观察者observer为工具栏,被观察者为工具栏中内容的长度,即keypath为“self.textview.content.size”。

本实施例中,所述输入框中内容可以包括文本内容和/或图像内容。

步骤320:启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到输入框中内容变化的情况下返回回调通知。

步骤330:在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为输入框中内容的长度。

由于同一个观察者可以存在多个不同的键值监听器kvo;因此,本实施例中,针对监测输入框中内容长度变化,需要在接收到回调通知后,判断是不是输入用于监测输入框中内容长度变化的键值监听器kvo返回的回调通知。

具体地,可以通过判断所述通知中的观察者是否为工具栏,被观察者是否为输入框中内容的长度。

如果所述通知中的观察者是为工具栏,被观察者是为输入框中内容的长度,说明该通知是用于监测输入框中内容长度变化的键值监听器kvo返回的,从而可以执行后续步骤340;

如果所述通知中的观察者不是为工具栏和/或被观察者不是为输入框中内容的长度;说明该通知不是用于监测输入框中内容长度变化的键值监听器kvo返回的,可以不对该通知做任何处理。

步骤340:在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,根据所述输入框中内容的长度调整所述输入框的高度。

本实施例中,在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,说明输入框中内容发生了变化,可能需要对输入框的高度进行调整。

具体地,根据所述输入框中内容的长度调整所述输入框的高度,可以包括如下步骤:

b1:根据所述输入框中内容的长度以及所述输入框每一行的长度,计算所述输入框显示所述内容所需的高度;

b2:将所述输入框的高度调整为所计算出的高度。

高度的计算公式如下:

其中,h表示高度,a表示输入框中内容的长度,b表示输入框每一行的长度。

一般的,如果a可以被b整除,则h即为商的值;如果a不能被b整除,则h为商的值加1。

举例说明,假设输入框内内容的长度为35,而输入框每一行的长度为10;则如果输入框需要完全显示所有的内容,则需要高度=35/10,由于35不能被10整除,因此最终高度为3+1=4;也就是说,需要将输入框的高度调整为4才能全部显示输入的内容。

请参考图9所示的虚拟键盘中输入框的示意图,应用本实施例虚拟键盘中输入框的高度可以随输入框中内容的长度的变化而改变。

在另一个具体地实施例中,在所述步骤b1之后,所述方法还可以包括:

判断所计算出的高度是否达到预设高度;

在所计算出的高度未超过预设高度的情况下,执行步骤b2,即将所述输入框的高度调整为所计算出的高度;

在所计算出的高度超过预设高度的情况下,将所述输入框的高度调整为所述预设高度,并且显示所述输入框的滚动条。

在实际应用中,输入框的高度不可能无限制的增加。在移动终端如手机中,由于屏幕大小的限制,如果输入框过大,则会影响其它区域内容的展示。因此,通常输入框会设置一个预设高度,即输入框的高度最大就只能达到预设高度。所述预设高度可以是人为预先设置的一个经验值。

对于计算出的高度超过预设高度的情况,将所述输入框的高度调整为所述预设高度,并且显示所述输入框的滚动条。用户可以控制滚动条上下滑动来查看未显示的内容。

通过本实施例,设置一个用于监测输入框中内容长度变化的键值监听器kvo,所述键值监听器kvo在监测到输入框中内容变化的情况下返回回调通知;在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,可以实时根据所述输入框中内容的长度自动地调整所述输入框的高度。如此,输入框可以实现自适应,即自动根据输入框内用户输入内容的长度来改变输入框的高度,进而提高了用户体验。

基于图7所示实施例的基础上,本申请的另一个具体地实施例中,在步骤340之后,所述方法还可以包括:

通过uiview块动画,将输入框中的光标定位于输入内容之后。

如此,当用户每次输入新的内容或者删除内容后,输入框底部始终都会停留在最后一行的位置,特别是当输入框中内容较多用到滚动条的情况下,由于输入框无法同时显示全部内容,这样处理可以更符合用户输入习惯,提高用户体验。

基于图7所示实施例的基础上,本申请的另一个具体地实施例中,所述方法还可以包括:

在所述虚拟键盘被关闭的情况下,删除所述用于监测输入框中内容长度变化的键值监听器kvo。

本实施例中,如果用户退出当前的聊天页面,则虚拟键盘会被关闭,为了避免资源不被泄露,需要删除所述用于监测输入框中内容长度变化的键值监听器kvo;否则,由于键值监听器kvo一直存在,会导致资源泄露。

虚拟键盘通常还可以具有发送按钮。用户可以通过点击发送按钮发送输入框中输入的内容。然而,现有技术中,发送按钮在某些情况下例如虚拟键盘初始化的情况下以及输入框中内容为空的情况下依然是可用的。

在上述实施例中,所述虚拟键盘还可以具有发送按钮,所述发送按钮根据输入框输入状态的变化而变化。

具体地,

在所述虚拟键盘初始化的情况下,将所述发送按钮设置为禁用。例如在用户进入当前聊天页面时,聊天软件或者操作系统会初始化虚拟键盘,此时的发送按钮可以是禁用的。图10a中禁用发送按钮的效果是隐藏发送按钮;在某些实施例中,禁用发送按钮的效果还可以是显示发送按钮,但该发送按钮不可被触发。

在所述输入框中存在未发送内容的情况下,将所述发送按钮设置为可用。如图10b所示,在用户输入内容后,由于输入框中存在未发送的文字内容,此时的发送按钮是可用的。

在所述输入框中内容已发送的情况下,将所述发送按钮设置为禁用。如图10c所示,在用户点击发送按钮从而将输入框中内容发送出去后,由于输入框中不存在内容,此时的发送按钮是禁用的。

与前述图4所示的虚拟键盘的交互方法实施例相对应,本申请还提供了一种虚拟键盘的交互装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图11所示,为本申请虚拟键盘的交互装置所在设备的一种硬件结构图,除了图11所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该虚拟键盘的交互实际功能,还可以包括其他硬件,对此不再赘述。

参见图12,为本申请一实施例提供的虚拟键盘的交互装置的模块图,所述虚拟键盘由具有预设功能键的工具栏和展示所述预设功能键对应内容的展示区域构成,所述装置包括:设置键值监听器单元410、启动通知回调单元420、判断单元430和调整高度单元440。

其中,设置键值监听器单元410,设置用于监测预设功能键的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为预设功能键;

启动通知回调单元420,启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到预设功能键被选中的情况下返回回调通知;

判断单元430,在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为预设功能键;

调整高度单元440,在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,根据所述预设功能键对应内容的大小,调整所述展示区域的高度。

在一个可选的实施例中:

所述调整高度单元440,具体包括:

确定子单元,确定所述预设功能键对应内容的高度;

调整子单元,将所述展示区域的高度调整为所确定的高度;

显示子单元,在所述调整后的展示区域内显示所述预设功能键对应内容。

在一个可选的实施例中:

所述预设功能键为表情按钮的情况下,所述调整高度单元440,具体包括:

确定子单元,确定所述表情按钮对应表情内容的高度;

调整子单元,将所述展示区域的高度调整为所确定的高度;

显示子单元,在所述调整后的展示区域内显示所述表情按钮对应表情内容。

在一个可选的实施例中:

所述表情基于collectionview实现。

在一个可选的实施例中:

所述预设功能键为键盘按钮的情况下,所述调整高度单元440,具体包括:

确定子单元,确定所述键盘按钮对应键盘内容的高度;

调整子单元,将所述展示区域的高度调整为所确定的高度;

显示子单元,在所述调整后的展示区域内显示所述键盘按钮对应键盘内容。

在一个可选的实施例中:

所述预设功能键为语音按钮的情况下,所述调整高度单元440,具体包括:

确定子单元,确定所述语音按钮对应内容的高度;

调整子单元,将所述展示区域的高度调整为所确定的高度;

显示子单元,在所述调整后的展示区域内显示所述预设功能键对应内容。

在一个可选的实施例中:

所述装置还包括:

删除键值监听器单元,在关闭所述虚拟键盘的情况下,删除所述用于监测预设功能键的键值监听器kvo。

通过本实施例,设置一个用于监测预设功能键的键值监听器kvo,所述键值监听器kvo在监测到预设功能键被选中的情况下返回回调通知;在所述通知中的观察者为工具栏以及所述通知中的被观察者为预设功能键的情况下,可以实时根据所述被选中的预设功能键对应内容的高度自动地调整所述展示区域的高度。如此,展示区域可以实现自适应,即自动根据被选中的预设功能键对应内容的高度来改变展示区域的高度,进而提高了用户体验。

与前述图7所示的虚拟键盘的交互方法实施例相对应,本申请还提供了一种虚拟键盘的交互装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图13所示,为本申请虚拟键盘的交互装置所在设备的一种硬件结构图,除了图13所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该虚拟键盘的交互实际功能,还可以包括其他硬件,对此不再赘述。

参见图14,为本申请一实施例提供的虚拟键盘的交互装置的模块图,所述虚拟键盘由具有输入框的工具栏和展示键盘内容的键盘区域构成,所述装置包括:设置键值监听器单元510、启动通知回调单元520、判断单元530和调整高度单元540。

其中,设置键值监听器单元510,设置用于监测输入框中内容长度变化的键值监听器kvo;其中,所述键值监听器kvo的观察者observer为工具栏,被观察者keypath为输入框中内容的长度;

启动通知回调单元520,启动所述键值监听器kvo的通知回调方法;其中,所述通知回调方法用于所述键值监听器kvo在监测到输入框中内容变化的情况下返回回调通知;

判断单元530,在接收到回调通知的情况下,判断所述通知中的观察者是否为工具栏,被观察者是否为输入框中内容的长度;

调整高度单元540,在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,根据所述输入框中内容的长度调整所述输入框的高度。

在一个可选的实施例中:

所述调整高度单元540,具体包括:

计算高度子单元,根据所述输入框中内容的长度以及所述输入框每一行的长度,计算所述输入框显示所述内容所需的高度;

调整高度子单元,将所述输入框的高度调整为所计算出的高度。

在一个可选的实施例中:

在所述计算高度子单元之后,所述装置还包括:

判断高度子单元,判断所计算出的高度是否达到预设高度;

所述调整高度子单元,具体包括:

在所计算出的高度未超过预设高度的情况下,将所述输入框的高度调整为所计算出的高度。

在一个可选的实施例中:

所述装置还包括:

第二调整高度子单元,在所计算出的高度超过预设高度的情况下,将所述输入框的高度调整为所述预设高度,并且显示所述输入框的滚动条

在一个可选的实施例中:

在所述调整高度单元540之后,所述装置还包括:

定位光标单元,通过uiview块动画,将输入框中的光标定位于输入内容之后。

在一个可选的实施例中:

所述装置还包括:

删除键值监听器单元,在所述虚拟键盘被关闭的情况下,删除所述用于监测输入框中内容长度变化的键值监听器kvo。

在一个可选的实施例中:

所述虚拟键盘还具有发送按钮,所述发送按钮根据输入框输入状态的变化而变化。

在一个可选的实施例中:

所述发送按钮根据输入框输入状态的变化而变化,具体包括:

在所述虚拟键盘初始化的情况下,将所述发送按钮设置为禁用;

在所述输入框中存在未发送内容的情况下,将所述发送按钮设置为可用;

在所述输入框中内容已发送的情况下,将所述发送按钮设置为禁用。

在一个可选的实施例中:

所述输入框中内容包括文本内容和/或图像内容。

通过本实施例,设置一个用于监测输入框中内容长度变化的键值监听器kvo,所述键值监听器kvo在监测到输入框中内容变化的情况下返回回调通知;在所述通知中的观察者为工具栏以及所述通知中的被观察者为工具栏中内容的长度的情况下,可以实时根据所述输入框中内容的长度自动地调整所述输入框的高度。如此,输入框可以实现自适应,即自动根据输入框内用户输入内容的长度来改变输入框的高度,进而提高了用户体验。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

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