2017-09-30 4 views
1

Here is image of view J'ai le problème suivant. J'ai créé un exemple de formulaire d'informations utilisateur pour l'utilisateur. Il remplit quelques détails et soumet. Voir la première sous-image dans la capture d'écran ci-dessus. Je saisis ici le prénom et le nom, le clavier normal apparaîtra lorsque je changerai manuellement le prénom en faisant défiler une vue ou en utilisant le bouton suivant du clavier. Puis, lorsque vous cliquez sur textfield, une uipickerview/UIActionsheet apparaît. Plase voir l'image précédente.Numéro UITextfield avec vue UIPicker

Cela fonctionne très bien. Lorsque je déplace un champ de texte de prénom de nom de famille au nom de famille et de nom de famille au champ de texte de code.

Problème: Mon problème est que, supposons que je suis actuellement textfield i.e. Je lastname suis entrée mon nom et j'ai cliqué sur le code suivant textfield problème vient. vu l'image ci-dessous. Donc, ici, le clavier apparaît ainsi que uipickerview/UIactionsheet est également à venir, mais dans le clavier behing. Je ne sais pas ce qui va arriver. Non seulement le nom de famille pour former le champ de texte forme le premier nom tp code le champ de texte ou l'email textfield pour coder le champ de texte ... le même problème ne survient que lorsque je passe à un champ texte par défilement. Si j'utilise le bouton suivant du clavier il se déplace et travaille le dossier.

Quelqu'un m'aidera à régler ce problème.

Voici mon code,

@interface CreateTicketViewController() 

- (void)countryCodeWasSelected:(NSNumber *)selectedIndex element:(id)element; 

@end 

@implementation CreateTicketViewController 


- (IBAction)countryCodeClicked:(id)sender { 
    [self removeKeyboard]; 

    [ActionSheetStringPicker showPickerWithTitle:NSLocalizedString(@"Select CountryCode",nil) rows:_countryArray initialSelection:0 target:self successAction:@selector(countryCodeWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:sender]; 
} 


- (void)actionPickerCancelled:(id)sender { 
    NSLog(@"Delegate has been informed that ActionSheetPicker was cancelled"); 
} 


- (void)countryCodeWasSelected:(NSNumber *)selectedIndex element:(id)element{ 
    // self.selectedIndex = [selectedIndex intValue]; 

    //may have originated from textField or barButtonItem, use an IBOutlet instead of element 
    self.codeTextField.text = (_codeArray)[(NSUInteger) [selectedIndex intValue]]; 
} 



#pragma mark - UITextFieldDelegate 

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
if (textField==_codeTextField) { 
     [_codeTextField resignFirstResponder]; 
     _codeTextField.tintColor = [UIColor clearColor]; 
     [self removeKeyboard]; 

     [ActionSheetStringPicker showPickerWithTitle:NSLocalizedString(@"Select CountryCode",nil) rows:_countryArray initialSelection:0 target:self successAction:@selector(countryCodeWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:self.view]; 
     //return NO; 
    } 

Voici la méthode pour removeKeyboard.

UIToolbar *toolBar= [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    UIBarButtonItem *removeBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(removeKeyBoard)]; 


-(void)removeKeyboard{ 
    [_emailTextField resignFirstResponder]; 
    // [_mobileTextField resignFirstResponder]; 
    // [_msgTextField resignFirstResponder]; 
    [_subjectTextField resignFirstResponder]; 
    [_firstNameTextField resignFirstResponder]; 


} 
+0

impossible de voir les images !! –

+0

Essayez de définir l'entrée du champ textcode 'code' sur votre pickerView –

+0

Ce n'est pas censé se comporter de cette façon. Pouvez-vous partager le code comment ajouter la vue sélecteur au code textField et aussi l'action clé suivante. Hope @ViniApp point est adresse par vous. – Bharath

Répondre

0

Vous devez faire comme ceci:

_codeTextField.inputView = YOURPICKER