0

我试图在我的应用程序中隐藏我的 UITextField。我第一次尝试用 UIButton 来做。

为此我做了这个:

-(IBAction)hide:(id)sender {

_textField.hidden = !_textField.hidden;

}

这行得通,但现在我试图在编辑后自动完成,所以我写了这段代码:

 -(void)textFieldDidEndEditing:(UITextField *)textField {

 textField.hidden = YES;

 }

在 .h 我把这段代码:

-(void)textFieldDidEndEditing:(UITextField *)textField;

谁能告诉我为什么这不起作用?

是否可以用动画隐藏它?我试过这个不起作用:

[UIView animateWithDuration:2.0 animations:^
{ code.. }
]

谢谢你帮助我!

4

2 回答 2

1

您应该操纵 textField 的 alpha 值以对其进行动画处理例如:

textField.alpha = 1;
[UIView animateWithDuration:2.0 animations:^{
    textField.alpha = 0;
}];
于 2012-11-04T15:27:44.717 回答
1

UITextField 的hidden属性是 BOOL 并且不能动画。尝试使用文本字段的alpha属性。它接受浮点值,其中 0.0 表示完全透明,1.0 表示完全不透明。

所以你可以为 UITextField 的 alpha 设置动画来隐藏它:

[UIView animateWithDuration: 2.0 
                 animations:^{ 
      textField.alpha = 0.0;
 }];

正如铍所说,您还应该检查您的文本字段是否确实设置了其委托,以便调用-textFieldDidEndEditing:方法。

我假设您有一个视图控制器设置如下:

@interface ViewController : UIViewController<UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *textField;
@end

然后,您应该将情节提要中的 UITextField 的委托出口连接到视图控制器,如下所示:

在此处输入图像描述

或者您可以在视图控制器的-viewDidLoad方法中以编程方式执行此操作:

- (void) viewDidLoad 
{
     self.textField.delegate = self;
}
于 2012-11-04T15:34:50.917 回答