测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
Released最后发布 | 2015年1月 |
由 Martin Pham 维护。
*** 插件 ***
1) 修复了 iOS 8 键盘问题(支持预测键盘)
关于如何在编辑时将 UITextField
和 UITextView
移出键盘的路有很多,通常是观察 UIKeyboardWillShowNotification
和 UIKeyboardWillHideNotification
,或者实现 UITextFieldDelegate
代理方法,调整父视图的框架,或使用 UITableView
的 scrollToRowAtIndexPath:atScrollPosition:animated:
,但大多数建议的解决方案都相当 DIY,并且需要为每个需要的视图控制器实现。
这是一个相对通用的即插即用解决方案:UIScrollView
和 UITableView
子类处理所有内容。
当键盘即将出现时,子类将查找即将被编辑的子视图,并调整其框架和内容偏移量以确保该视图可见,并匹配键盘弹出的动画。当键盘消失时,它将恢复其先前的大小。
它应该适用于基本任何设置,无论是基于 UITableView
的界面,还是由视图手动放置的界面。
它还自动将“下一个”按钮连接到键盘,以切换文本字段。
对于与 UITableViewController
类一起使用,将 TPKeyboardAvoidingTableView.m
和 TPKeyboardAvoidingTableView.h
添加到您项目中,并将您的 UITableView
制作成 TPKeyboardAvoidingTableView
在 xib 中。如果您正在使用控制器的 xib,我知道没有简单的方法可以将它的 UITableView
制作成自定义类:阻力最小的方法是为此创建一个 xib。
对于非 UITableViewController
,将 TPKeyboardAvoidingScrollView.m
和 TPKeyboardAvoidingScrollView.h
源文件添加到您的项目中,在您的视图控制器 xib 中放入 UIScrollView
,将滚动视图的类设置为 TPKeyboardAvoidingScrollView
,将所有控件放置在滚动视图内。您也可以不使用 xib 编程创建它 - 只需使用 TPKeyboardAvoidingScrollView 作为您的顶级视图。
要禁用自动“下一步”按钮功能,将 UITextField
的返回键类型更改为除 UIReturnKeyDefault
之外的所有类型。
这些类目前通过调整 contentInset 参数来防止内容移到键盘下方。这是在与框架调整相反的方式中执行的,目的是解决导致视图向上跳跃然后稳定下来的繁琐动画的 iOS 缺陷。为了便于这种修复方法,内容大小保持与视图框架大小相同。
版权(c)2013 迈克尔·泰森
此软件按原样提供,不提供任何明示或暗示的保证。在任何情况下,作者都不会因使用此软件而导致的任何损害负责。
任何人都可以出于任何目的使用此软件,包括商业应用,并自由地修改和重新分发,仅受以下限制:
此软件的来源不得被误导;你不得声称是你编写了原始软件。如果你的产品使用此软件,产品文档中的致谢将被赞赏但不是必需的。
修改过的源代码版本必须明确标记为修改过的,不得被误标识为原始软件。
此声明不得从任何源分发中删除或更改。
迈克尔·泰森,美味像素
[email protected]