2017-09-30 3 views
1

Here is image of view Ich habe folgendes Problem. Ich habe ein Beispiel für Benutzerinformationen für Benutzer erstellt. Er füllt einige Details und reicht ein. Sehen Sie sich das erste Teilbild im obigen Screenshot an.UITextfield Problem mit UIPicker anzeigen

Hier gebe ich den Vornamen und den Nachnamen ein, die normale Tastatur erscheint, wenn ich den Vornamen manuell auf den Nachnamen umstelle, indem ich eine Ansicht scrolle oder die Tastatur als nächstes auf der Tastatur benutze.

Dann, wenn Code Textfeld klicken, erscheint ein uipickerview/UIActionsheet. Siehe vorheriges Bild.

Es funktioniert gut. Wenn ich ein Vornamen-Textfeld in das Textfeld "Nachname" und von "Nachname" in das Textfeld "Code" verschiebe.

Problem: Mein Problem ist das, angenommen, derzeit bin ich Nachname Textfeld, d. H. Ich gebe meinen Nachnamen ein und ich klickte auf Code-Textfeld folgende Ausgabe kommt. das folgende Bild gesehen. Here is my problem

So hier, Tastatur erscheint ebenso wie uipickerview/UIactionsheet kommt auch, aber in Behing Tastatur. Ich weiß nicht, dass es kommt. Nicht nur Nachname, um Textfeld zu formatieren Form Vorname Textfeld Textfeld oder E-Mail Textfeld Textfeld zu codieren ... Das gleiche Problem kommt nur, wenn ich durch Scrollen/Umschalten in ein Textfeld zum nächsten Feld gehe. Wenn ich die nächste Taste von der Tastatur verwende, wird die Datei verschoben und bearbeitet.

Helfen Sie mir, dieses Problem zu lösen.

Hier mein 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; 
    } 

Hier Verfahren für 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

nicht in der Lage, Bilder zu sehen !! –

+0

Versuchen Sie, 'code' textfield inputView zu Ihrem PickerView –

+0

zu setzen. Es sollte sich nicht so verhalten. Können Sie den Code teilen, wie fügen Sie dem Code textField und der nächsten Tastenaktion die Auswahlansicht hinzu? Hope @ViniApp Punkt ist Adresse von dir. – Bharath

Antwort

0

Sie haben wie dies zu tun:

_codeTextField.inputView = YOURPICKER