我正在寻找一些优化方法来隐藏键盘背景水龙头时UITextFields
处于UITableViewCell
。 我已经取得了一些代码,希望这会帮助你。
Answer 1:
这样做则hitTest行的事似乎是正道
您可以实现在其上的tableView所在,像下面的视图触摸事件。
还可以指派TextField对象在一个成员变量textFieldDidBeginEditing
,这样你就可以辞职其中显示了keyborad特定文本字段。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[textFieldObject resignFirstResponder];
}
Answer 2:
我做了一个类别tableview
隐藏在背景敲击键盘时tableview
包含textfield
。
我的头文件:
#import <UIKit/UIKit.h>
#import "Utility.h"
@interface UITableView (HitTest)
@end
我的实现文件:
#import "UITableView+HitTest.h"
@implementation UITableView (HitTest)
UITableViewCell *activeCell;
-(UIView*) hitTest:(CGPoint)point withEvent:(UIEvent*)event
{
NSInteger iterations = 0;
// check to see if the hit is in this table view
if ([self pointInside:point withEvent:event])
{
UITableViewCell* newCell = nil;
// hit is in this table view, find out
// which cell it is in (if any)
for (UITableViewCell* aCell in self.visibleCells)
{
iterations ++;
if ([aCell pointInside:[self convertPoint:point toView:aCell] withEvent:event])
{
newCell = aCell;
break;
}
}
if (!newCell)
{
for (UIView *view in activeCell.subviews)
{
iterations++;
if ([view isFirstResponder])
{
[view resignFirstResponder];
break;
}
}
}
else
{
activeCell = newCell;
}
NSLog(@"total Iterations:%d",iterations);
}
// return the super's hitTest result
return [super hitTest:point withEvent:event];
}
@end
这是对我工作的罚款。
文章来源: Hide keyboard by touching background of UITableView