5

我正在创建下面显示的 iPhone 应用程序。

在屏幕的末尾我有文本字段。我为此添加了一个代表。因为它是数字键盘,所以我单独添加了按钮,以便在单击按钮时隐藏键盘。

下面是我的代码:

。H

@interface SearchViewController : UIViewController<UITextFieldDelegate>

@property (retain, nonatomic) IBOutlet UITextField *textField006;
@property (retain, nonatomic) IBOutlet UIButton *doneButton;
- (IBAction)doneAction:(id)sender;

.m

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    NSLog(@"textFieldShouldReturn");
    return YES;
}

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"textFieldDidBeginEditing");
    // Ensure the relevant text field is visible
    CGAffineTransform translation = CGAffineTransformIdentity;
    CGRect screenBound = [[UIScreen mainScreen] bounds];
    CGSize screenSize = screenBound.size;
    CGFloat screenHeight = screenSize.height;

    if (screenHeight==480 || screenHeight==568) {
            translation = CGAffineTransformMakeTranslation(0, -120);
        doneButton.hidden = NO;
        NSLog(@"line 3");
        [UIView beginAnimations:nil context:nil];
        self.view.transform = translation;
        [UIView commitAnimations];
    }
}

- (IBAction)doneAction:(id)sender {
    doneButton.hidden = NO;    
    doneButton.hidden = YES;
    [textField006 resignFirstResponder];
    [UIView beginAnimations:nil context:nil];
    self.view.transform = CGAffineTransformIdentity;
    [UIView commitAnimations];
    [self.textField006 resignFirstResponder];

}

为什么键盘不隐藏?我该如何隐藏它?

键盘 == 小数键盘 Return 键 >> Go 自动启用 Return 键 = 勾选

4

3 回答 3

19

一定要使用endEditing:如果它当前没有正确隐藏。

关于endEditing

“endEditing 导致视图(或其嵌入的文本字段之一)放弃第一响应者状态。”

“此方法查看当前视图及其子视图层次结构,以查找当前是第一响应者的文本字段。如果找到,则要求该文本字段辞去第一响应者的职务。如果强制参数设置为 YES,则文本甚至从未问过这个领域;它被迫辞职。”

因此,以下应该有效(在您的按钮单击操作方法中):

[self.view endEditing:YES];
于 2013-03-20T10:55:59.227 回答
1

@lifetimes 答案的 Swift 版本

self.view.endEditing(true)

它对我来说非常有效

于 2018-05-28T10:09:14.610 回答
0

你也可以制作[self.textField006 resignFirstResponder]

于 2013-03-20T11:10:47.273 回答