2016-04-16 5 views
0

In meinem Projekt haben einige ViewControllers mehrere Textfelder,
Ich habe gefunden, wie Sie eine Symbolleiste über der Tastatur mit einem "Ok" -Button zum Ausblenden der Tastatur beim Tippen auf die Schaltfläche hinzufügen.
Der Code ich verwende ist dies unter:Tastatur-Symbolleiste für mehrere textFields

UIBarButtonItem *flex = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:_destField action:@selector(resignFirstResponder)]; 
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 34)]; 
toolbar.items = [NSArray arrayWithObjects:flex, barButton, nil];  
_destField.inputAccessoryView = toolbar; 

Wie kann ich diesen Code in der gleichen Ansicht Controller leicht wiederverwenden?
Das "Ziel" macht dies schwierig, gibt es eine Möglichkeit, ohne eine Symbolleiste für jedes Textfeld zu erstellen?

Danke!

Antwort

1

Wenn dieser Code in einem View-Controller ist, gibt es eine einfache Lösung. Ändern Sie den barButton etwas wie folgt aus:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissKeyboard)]; 

Dann diese Methode View-Controller hinzufügen:

- (void)dismissKeyboard { 
    [self.view endEditing:YES]; 
} 

, dass die Tastatur entlassen wird, egal welche Ansicht er angezeigt wird.

Jetzt können Sie diese Symbolleiste als inputAccessoryView für jedes Textfeld/View in der View-Controller wiederverwenden.

+0

Es funktioniert perfekt! Vielen Dank! Ich akzeptiere deine Antwort sobald ich autorisiert bin :) – nommis