2016-01-13 173 views
0

在我的應用我有不同TextFieldsUsernameName,在Password的XCode文本字段隱藏鍵盤

我使用以下textfields年齡,性別和地區作爲ActionSheet採摘。我面臨的問題是當我輸入password字段並移動到選擇年齡時,鍵盤不會隱藏在第一次點擊本身。在鍵盤隱藏之後,我必須再次點擊年齡段。

任何一個可以幫我解決這個問題

- (BOOL)textFieldShouldBeginEditing:(LRTextField *)textField { 
    NSLog(@"Tag %ld",(long)textField.tag); 
    if (textField.tag == 3){ 
    return NO; 
    } else if (textField.tag == 4){ 
    return NO; 
    } else if (textField.tag==5){ 
    return NO; 
    } else if (textField.tag==6){ 
    return NO; 
    } 
    return YES; 
} 

我使用LTTextFieldtextfield驗證。

+0

替代解決方案:不是文本框的年齡,性別和地區,使用UIButtons。 –

+0

'resignFirstResponder:'在哪裏? 'textFieldShouldBeginEditing:'如果返回'NO',那麼這將阻止編輯,但它不會退出已經聚焦的'textField'。 – TheTiger

回答

0

按照下面的步驟

做一個簡單的按鈕上pickerview文本框

添加動作

- (IBAction)hidekey:(id)sender { 


    [self.view endEditing:YES]; 
    [_yourpickerview setHidden:NO]; 

} 

這裏所有的文本框resignFirstResponder

所以,當你永遠是textfield鍵盤上移動將隱藏和pickerview顯示

希望對你的工作

+0

謝謝我已經解決了這個問題,當這個動作被稱爲 - (IBAction)selectAge:(UIControl *)發件人{這裏把結束編輯代碼}這已經解決了我的問題。我想這是解決這個問題的最佳方法 –

+0

是的,這也是不錯的方法:)) –

+0

無需寫每個文本字段resignFirstresponser @RushangPrajapati。只需要在該IBAction方法上的一行代碼。 – Jaimish

0

您可以使用resignFirstResponder

func textFieldShouldReturn(textField: UITextField) -> Bool { 

    if textField.tag = passwordTag { 
     textField.resignFirstResponder()   
    } 
    return true 
} 
0

我有同樣的問題,我做了這個小片的代碼在移動每個IPhone正確的位置。 在您的viewDidLoad:

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardDidShow:) 
               name:UIKeyboardDidShowNotification 
               object:nil]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardDidHide:) 
               name:UIKeyboardWillHideNotification 
               object:nil]; 

而且剛過:

- (void)keyboardDidShow: (NSNotification *) notif{ 
     CGSize keyboardsize = [[[notif userInfo]objectForKey:UIKeyboardFrameBeginUserInfoKey]CGRectValue].size; 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.25]; 
     long moveScreen = ((long)(keyboardsize.height) - (long)(self.view.frame.size.height) + 465) * -1; 
     if (moveScreen > 0) 
      moveScreen = 0; 
     self.view.frame = CGRectMake(rect.origin.x,moveScreen,rect.size.width,rect.size.height); 
     [UIView commitAnimations]; 
    } 

    - (void)keyboardDidHide: (NSNotification *) notif{ 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.25]; 
     self.view.frame = rect; 
     [UIView commitAnimations]; 
    } 
0
 func textFieldShouldReturn(textField: UITextField) -> Bool { 

       if textField == self.emailField { 
        self.usernameField.becomeFirstResponder() 
       } 
       else if textField == self.usernameField { 
        self.nameField.becomeFirstResponder() 
       } 
       else if textField == self.nameField { 
        self.passwordField.becomeFirstResponder() 
       } 

       else if textField == self.passwordField { 
        self.ageField.becomeFirstResponder() 
        self.ageField.resignFirstResponder(); 
       } 

       return true; 
       } 

化妝ageTextField那麼第一個響應者辭職第一響應