UIScrollView现在不会删除键盘iOS吗?

UIScrollView现在不会删除键盘iOS吗?,ios,objective-c,uiscrollview,keyboard,Ios,Objective C,Uiscrollview,Keyboard,我最近开始研究使用Xcode和Objective-C开发iOS,但遇到了一个小问题(这个问题可能很容易解决)。我有一系列用于用户输入的文本字段,但当用户触摸键盘时,无法摆脱它,因此我在.m文件中添加了代码: [super viewDidLoad]; } - (BOOL)textFieldShouldReturn:(UITextField *)textfield { [textfield resignFirstResponder]; return YES; } -(void)touchesBe

我最近开始研究使用Xcode和Objective-C开发iOS,但遇到了一个小问题(这个问题可能很容易解决)。我有一系列用于用户输入的文本字段,但当用户触摸键盘时,无法摆脱它,因此我在.m文件中添加了代码:

[super viewDidLoad];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textfield {
[textfield resignFirstResponder];
return YES;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
[super touchesBegan:touches withEvent:event];
}
一切都很好,当用户触摸屏幕时,键盘消失了,只是键盘现在覆盖了屏幕的一半并隐藏了一些文本字段。 为了解决这个问题,我在代码中添加了一个
UIScrollView

@implementation ViewController

- (void)viewDidLoad
{
_scrollView.scrollEnabled = YES;
_scrollView.contentSize = CGSizeMake(320, 800); 
现在,用户可以滚动浏览所有文本字段,但当用户触摸屏幕时,键盘不会再次消失?我猜问题是与
UIScrollView
有关,因为它以前工作过


有人知道发生了什么吗?

您可以尝试在ViewController.View属性上设置UITapGestureRecognitor

使用该键关闭键盘(EndEditing/ResignFirstResponder/等)。这里有一个简单的例子

-(void)viewDidLoad
{
    [super viewDidLoad];

    // .... your other statements

    UITapGestureRecognizer *tapGestures = [[UITapGestureRecognizer] alloc] initWithTarget:self action:@selector(tapReceived:)];
    [tapGestures setDelegate:self];
    [self.view addGestureRecognizer:tapGestures];
}

-(void)tapReceived:(UITapGestureRecognizer *)recognizer
{
    [self.view endEditing:YES];
}

不久前我回答了类似的问题。这种方法将允许您不必到处复制键盘处理代码。另外,我将它用于ScrollView,所以我知道它可以处理这个问题。这个类将为你省去很多关于ScrollView/TableView和textfields的麻烦:嘿,谢谢你的帮助!我添加了UITapGestureRecognitor并将其全部链接起来,但是我刚刚注意到我在调试中收到一个问题警告,基本上说是“不兼容的类型”应用程序运行和工作只是想知道为什么会出现这种情况?别担心,我想需要将@interface Section 1:UIViewController添加到.h文件中谢谢您的帮助:)