0

我遇到了一个奇怪的问题:众所周知,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 */
}
4

1 回答 1

3

不要使用 category 覆盖方法

您在这里遇到的特殊问题是您的super调用不会调用主UITableViewController类中的相应方法,而是调用类中的方法UIViewController。由于您覆盖的方法似乎不会直接影响键盘可能调用的内容,我的猜测是他们设置了正确的侦听器。因为您阻止了设置键盘侦听器的方法(OP 说这似乎是viewWillAppear),所以表格无法检测到键盘何时设置并适当滚动。

创建并使用适当的子类。

于 2013-06-23T20:24:27.863 回答