解决第三方键盘的高度带来的问题。

也可以用这个,如果这个方法不可用的话,跳过看下面的方法

//获取键盘的高度

NSDictionary*userInfo = [aNotificationuserInfo];

NSValue*aValue = [userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey];

CGRectkeyboardRect = [aValueCGRectValue];

//键盘的高度和键盘的Y的坐标

CGFloatYKeyboard = keyboardRect.origin.y;

CGFloatheight = keyboardRect.size.height;


第一种方法


直接不用第三方,就用系统的

第二种方法

//获取键盘的高度



例如:搜狗键盘的高度是三次才能获取到正确的高度,所以用这个

这个是获取第三次高度的。。。

- (void)keyboardWillShow:(NSNotification *)notification {

CGFloat curkeyBoardHeight = [[[notification userInfo] objectForKey:@"UIKeyboardBoundsUserInfoKey"] CGRectValue].size.height;

CGRect begin = [[[notification userInfo] objectForKey:@"UIKeyboardFrameBeginUserInfoKey"] CGRectValue];

CGRect end = [[[notification userInfo] objectForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];

// 第三方键盘回调三次问题,监听仅执行最后一次

if(begin.size.height>0 && (begin.origin.y-end.origin.y>0)){

keyBoardHeight = curkeyBoardHeight;

然后根据你获取的keyBoardHeight来进行视图的操作、、

}

}

 最后,我就只知道这两种。还有一个是第三方,功能很强大,但是没用过,这个差不多也是可以用的。还是给你们贴出来吧。


这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager

这个库是一个单例,它一旦生效,全项目任何界面都有效。让它生效的代码可以写在任意位置,我写在AppDelegate里

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 

{     

  IQKeyboardManager *manager = [IQKeyboardManager sharedManager];

    manager.enable=YES;  

  manager.shouldResignOnTouchOutside=YES;  

  manager.shouldToolbarUsesTextFieldTintColor=YES;  

  manager.enableAutoToolbar=NO;returnYES;

}

enable控制整个功能是否启用。

shouldResignOnTouchOutside控制点击背景是否收起键盘。

shouldToolbarUsesTextFieldTintColor 控制键盘上的工具条文字颜色是否用户自定义。

enableAutoToolbar控制是否显示键盘上的工具条。

使用方法,代码如下:



设置returnKeyHandler,可以点击键盘上的next键,自动跳到下一个输入框。最后一个输入框点击done自动收起键盘。

运行后,可以看到输入框随着键盘的弹出自动上下浮动。点击背景,键盘收起。全自动了。

这个库默认支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView

最后要注意一点,它可以自动计算多个textField之间的先后顺序,排列依据是看addSubView的先后顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将自定义的软键盘第三方应用结合起来,您需要实现一个 Input Method(输入法)模块,并在系统中注册。以下是一些一般性的步骤: 1. 实现 Input Method 模块:您需要编写一个 Qt 插件,实现 QInputMethod 接口,并在其中实现自定义键盘的逻辑。 2. 注册 Input Method 模块:将编写的 Input Method 模块注册到系统中。对于 Windows 平台,您可以使用注册表进行注册;对于 Linux 平台,您需要在 /usr/share/ibus/component/ 或 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/ 中创建相应的文件。 3. 测试 Input Method 模块:在第三方应用程序中测试输入法是否能够正常工作。您可以使用 Qt 提供的输入法测试工具,在命令行中输入 `qinputmethodtest` 启动,然后选择测试应用程序,并测试您的自定义软键盘是否正常工作。 4. 集成 Input Method 模块:在第三方应用程序中启用您的输入法。您可以在应用程序中使用 Qt 提供的输入法接口来管理输入法,例如 `QInputMethod::setEnabled(true)` 来启用输入法,或 `QInputMethod::queryFocusObject()` 来获取当前输入焦点所在的对象。 请注意,对于某些特定的第三方应用程序,您可能需要进行额外的定制化工作,以使您的输入法与其更好地集成。 ### 回答2: QT是一个跨平台的应用程序开发框架,提供了丰富的组件和工具来创建用户界面。在QT中,可以通过自定义软键盘来增强用户输入体验,并且可以与第三方应用结合。 首先,我们可以在QT中创建一个自定义软键盘的窗口,使用QT提供的按钮组件和布局管理器等组件来构建软键盘的界面。可以根据需要自定义按钮的样式和功能,例如数字、字母、符号等。 其次,在第三方应用中,我们可以通过QT提供的槽和信号机制来实现与自定义软键盘的交互。可以在第三方应用的输入框中绑定一个槽函数,用于接收软键盘按钮的点击事件。 然后,在自定义软键盘中,可以通过发送信号的方式将被点击的按钮信息发送到第三方应用中。可以使用QT提供的信号和槽机制,将软键盘按钮的点击事件连接到第三方应用中的槽函数,从而实现与第三方应用的交互。 最后,可以在第三方应用中的槽函数中获取到软键盘按钮的信息,并根据需求将其插入到当前焦点位置的输入框中,从而实现与自定义软键盘的结合。 总之,通过在QT中创建自定义软键盘的界面,并利用QT的信号和槽机制与第三方应用进行交互,可以实现自定义软键盘第三方应用的结合。这样,用户可以在第三方应用中使用自定义软键盘,提高输入体验和便捷性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值