我遇到了一个奇怪的问题: 众所周知,UITableView 自动解决了键盘隐藏文本字段的问题。 在我扩展 UITableViewController 以添加更多功能之前,它对我来说一直很好。 准确地说——我没有继承自 UITableViewController,而是通过创建类 UITableViewController(属性)来扩展它。 扩展属性与键盘/文本字段问题没有任何关系 - 但上述功能在此扩展后已损坏,现在键盘隐藏了我的文本字段。
有人对此有解释吗? 而且,如果有扩展类经验的人可以提示这个过程中的敏感区域,那就膨胀了。
谢谢,埃利克
编辑: 这或多或少是我的扩展类代码和实现的方法:
@implementation UITableViewController (Property)
-(void) viewDidLoad
{
/* perform custom code */
[super viewDidLoad];
}
-(void)commonloadProperty{
/* custom code */
}
-(void) viewDidUnload
{
/* custom code */
[super viewDidUnload];
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
-(void)propertyHandlingStarted
{
/* custom code */
}
-(void)propertyHandlingCanceled
{
/* custom code */
}
-(void)propertyHandlingActionsClicked
{
/* custom code */
}
最佳答案
Don't override methods using a category .
你在这里遇到的特殊问题是你的 super
调用不调用主 UITableViewController
类中的相应方法,他们调用UIViewController
类中的方法。由于您覆盖的方法似乎不会直接影响可能为键盘调用的内容,我的猜测是他们设置了适当的监听器。因为您阻止了设置键盘监听器的方法(OP 说这似乎是 viewWillAppear
),所以该表无法检测何时设置键盘并适当滚动。
创建并使用适当的子类。
关于ios - 扩展 UITableviewController 的 xcode 键盘滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259692/