TPKeyboardAvoiding 1.3.5

TPKeyboardAvoiding 1.3.5

测试已测试
语言语言 Obj-CObjective C
许可证 Zlib
发布上次发布2020年11月

Michael Tyson 维护。



  • 作者:
  • Michael Tyson

TPKeyboardAvoiding

一个简单地用于在 iOS 中将文本框移动到键盘不起来的解决方案。

简介

有很多关于如何在编辑期间将 UITextFieldUITextView 移出键盘的解决方案,通常,这涉及到观察 UIKeyboardWillShowNotificationUIKeyboardWillHideNotification 通知,或者实现 UITextFieldDelegate 代理方法,调整父视图的框架,或者使用 UITableViewscrollToRowAtIndexPath:atScrollPosition:animated:,但大多数提出的解决方案通常相当 DIY,并且需要为每个需要它的视图控制器实现。

这是一个相对通用的即插即用解决方案:处理所有内容的 UIScrollViewUITableView 子类。

当键盘即将出现时,子类将找到即将被编辑的子视图,并调整其框架和内容偏移量,以确保该视图可见,并且具有匹配键盘弹出动画。当键盘消失时,它恢复其先前的尺寸。

它应该适用于任何基本配置,无论是基于 UITableView 的界面,还是手动放置视图的界面。

它还自动将键盘上的“下一步”按钮挂钩,以便在文本框之间切换。

使用说明

配合UITableViewController类使用时,将TPKeyboardAvoidingTableView.mTPKeyboardAvoidingTableView.h文件放入您的项目,并在xib中您的UITableView设为TPKeyboardAvoidingTableView。如果您使用的是非xib的控制器,我找不到任何简单的方法使其UITableView成为一个自定义类:最直接的方式是为其创建一个xib。

对于非UITableViewController,将TPKeyboardAvoidingScrollView.mTPKeyboardAvoidingScrollView.h源文件放入您的项目,在其视图控制器的xib中添加一个UIScrollView,将滚动视图的类别设置为TPKeyboardAvoidingScrollView,并将所有控件置于该滚动视图内。您也可以通过编程方式创建,不需要使用xib - 只用TPKeyboardAvoidingScrollView作为顶级视图。

要禁用自动“下一步”按钮功能,将UITextField的返回键类型更改为非UIReturnKeyDefault。

注意

这些类当前通过调整contentInset参数来避免内容移动到键盘下方。这样做是为了解决iOS中的一个bug,该bug会导致视图先向上跳动,然后才稳定下来。为了使这种规避方式变得容易实现,将contentSize保持与视图框架相同的大小。

许可证(Zlib)

版权所有(c)2013迈克尔·泰森

此软件按“原样”提供,不提供任何明示或暗示的保证。在任何情况下,作者都不会因使用此软件而导致的任何损害负责。

允许任何人在任何目的下使用此软件,包括商业应用,并且可以自由修改和重新分配,但须遵守以下限制

  1. 此软件的来源不得被误导;您不得声称是原始软件的编写者。如果您使用此软件创建产品,产品文档中对软件的认可将被赞赏,但不是必需的。

  2. 修改后的源代码版本必须清楚地标记,并且不得将其误认为是原始软件。

  3. 此声明不得从任何源代码分发中删除或修改。


迈克尔·泰森,美味像素
[email protected]