按住键盘按钮单击?

时间:2013-03-20 10:54:00

标签: ios objective-c cocoa-touch uitextfield uitextfielddelegate

我正在创建我在下面显示的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];

}

键盘为什么不隐藏?我怎么能隐藏它?

  

键盘==十进制键盘返回键&gt;&gt; Go自动启用返回键=   打勾

3 个答案:

答案 0 :(得分:18)

如果当前没有正确隐藏,请务必使用endEditing:

关于endEditing

  

“endEditing导致视图(或其中一个嵌入的文本字段)重新签名   第一响应者状态。“

     

“此方法查看当前视图及其子视图层次结构   当前第一个响应者的文本字段。如果找到一个,   它要求文本字段作为第一响应者辞职。如果力量   参数设置为YES,甚至不询问文本字段;它是   被迫辞职。“

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

[self.view endEditing:YES];

答案 1 :(得分:0)

您也可以[self.textField006 resignFirstResponder]

答案 2 :(得分:0)

快速版@lifetimes答案

self.view.endEditing(true)

它对我来说很完美