2012-11-04 28 views
0

我試圖在我的應用程序中隱藏我的UITextField。 我第一次嘗試用一個UIButton做到這一點..在textFieldDidEndEditing中隱藏UITextField

爲此我做了這個:

-(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.. } 
] 

感謝您幫助我!

+2

您是否爲您設置了_textField?在你的xib/viewDidLoad方法中檢查它。 – beryllium

+0

我正在處理一個故事板..我只爲我的.h做了這個: @property(弱,非原子)IBOutlet UITextField * textField; 我應該在viewDidLoad中需要什麼? –

回答

1

的UITextField的隱藏屬性是一個布爾,不能動畫。嘗試使用文本字段的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的代表出口,以這樣的視圖控制器:

enter image description here

或者你可以以編程方式在你的視圖控制器的-viewDidLoad方法中執行:

- (void) viewDidLoad 
{ 
    self.textField.delegate = self; 
} 
+0

非常感謝您的支持答案。它的工作: - D. –

1

你應該操縱你的文本字段的alpha valeue動畫它 例如:

textField.alpha = 1; 
[UIView animateWithDuration:2.0 animations:^{ 
    textField.alpha = 0; 
}]; 
+0

我怎麼能在代碼中做到這一點?我可以使用我在上面寫的代碼嗎? –

相關問題