嗨我发现了一些像这样的问题,但他们谈的是textView,我有ViewController,其中有scrollView,其中有6个textfield和一个textView,我想要一个功能,让键盘在完成/返回按钮上消失。我实现了函数辞职第一个响应者,当我点击scrollView外面时隐藏我的键盘,但这不是我想要的,因为我喜欢让它在按钮点击时消失。
感谢任何帮助
答案 0 :(得分:14)
设置符合UITextFieldDelegate协议的类,并使文本字段的委托成为此类的实例。实施方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
如下:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
答案 1 :(得分:5)
嗨我发现了,所以textfields的意思是在viewdidload上添加这行:
textFieldOne.returnKeyType = UIReturnKeyDone;
textFieldCislo.delegate = self;
textFieldTwo.returnKeyType = UIReturnKeyDone;
textFieldCislo.delegate = self;
...
这个实现方法:
-(BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == textFieldOne) {
[textFieldOne resignFirstResponder];
}
...
}
答案 2 :(得分:2)
经过相当多的时间寻找有意义的东西,这就是我放在一起的东西,它就像一个魅力。
·H
//
// ViewController.h
// demoKeyboardScrolling
//
// Created by Chris Cantley on 11/14/13.
// Copyright (c) 2013 Chris Cantley. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate>
// Connect your text field to this the below property.
@property (weak, nonatomic) IBOutlet UITextField *theTextField;
@end
的.m
//
// ViewController.m
// demoKeyboardScrolling
//
// Created by Chris Cantley on 11/14/13.
// Copyright (c) 2013 Chris Cantley. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// _theTextField is the name of the parameter designated in the .h file.
_theTextField.returnKeyType = UIReturnKeyDone;
[_theTextField setDelegate:self];
}
// This part is more dynamic as it closes any text field when pressing return.
// You might want to control every single text field separately but that isn't
// what this code do.
-(void)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
}
@end
答案 3 :(得分:2)
您可以使用此方法通过单击视图中的任何位置来隐藏键盘
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}