隐藏键盘的UITableView中的感人背景(Hide keyboard by touching b

2019-09-18 17:53发布

我正在寻找一些优化方法来隐藏键盘背景水龙头时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