按住键盘按钮单击?

Fah*_*kar 5 cocoa-touch objective-c uitextfield ios uitextfielddelegate

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

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

以下是我的代码:

.H

@interface SearchViewController : UIViewController<UITextFieldDelegate>

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

.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];

}
Run Code Online (Sandbox Code Playgroud)

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

键盘==十进制键盘返回键>> Go自动启用返回键=已勾选

dsg*_*fin 19

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

关于endEditing:

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

"此方法查看当前第一个响应者的文本字段的当前视图及其子视图层次结构.如果找到一个,则要求该文本字段作为第一个响应者辞职.如果force参数设置为YES,则为文本田野从来没有被问过;它被迫辞职."

因此,以下应该可以工作(在按钮单击操作方法内):

[self.view endEditing:YES];
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用......我会在8分钟内接受回答. (2认同)