Toetsenbord wil niet verbergen
Hallo,
Ik heb een grouped tableview met in de 1e cell een textfield. Het ziet er zo uit: http://img805.imageshack.us/img805/3693/img0336s.png Als je op cancel of settings drukt ga je terug naar de rootviewcontroller. Dit werkt allemaal tot nu toe. Ik wil echter ook dat het toetsenbord dan verdwijnt, maar dat wil niet lukken. Ik gebruik de volgende code: Code:
- (void)viewDidAppear:(BOOL)animated Code:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath Code:
- (IBAction)cancel:(id)sender Groeten, Jeroen |
In je .h file moet je vermelden dat je het <UITextFieldDelegate> protocol implementeert en je voegt deze methoden toe:
Code:
- (BOOL) textFieldShouldReturn:(UITextField *)theTextField { |
Dat heb ik al geprobeerd, maar helaas werkte het niet.
Ik heb na een lange tijd het internet doorgespeurd te hebben het probleem gevonden. Ik heb namelijk een navigation controller als form sheet en op de een of andere manier laat Apple het dan niet toe om het toetsbord te verbergen met de resignFirstResponder functie. Ik heb het probleem dus gevonden, helaas nog geen oplossing. |
Hoe heb jij 'theTextField' gedeclareerd?
Zo? Code:
UITextField <UITextFieldDelegate> * theTextField; |
Nee, zo:
Code:
@interface TwitterMessageViewController: UIViewController <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate> |
Wijzig de property declaratie eens in:
Code:
@property (nonatomic, retain) UITextField <UITextFieldDelegate> * theTextfield; Code:
[theTextField release]; |
Ik zal het eens proberen!
Ik release theTextField trouwens ook in de dealloc en de viewDidUnload methoden, moet het dan ook in de cellForRowAtIndexPath? |
Citaat:
Hou dit als regel aan: "Als je een object alloceert en je hebt deze object referentie niet meer nodig dan moet je (liefst in dezelfde methode) het object weer releasen". Beetje kromme zin maar je begrijpt het denk ik wel. |
@Wubbe
Het werkt helaas niet.. |
Laatste poging. waarom heb je:
Code:
[theTextfield addTarget:self action:@selector(doneTyping) forControlEvents:UIControlEventEditingDidEndOnExit]; |
Citaat:
---------- Bericht automatisch samengevoegd op 19 januari 2012 om 22:41 ---------- Citaat:
Code:
- (BOOL) textFieldShouldReturn:(UITextField *)theTextField { |
Hoe kijk je hoe lang de tekst is?
Ah, daarvoor wil je de tag gebruiken! Dan kun je hem net zo goed inderdaad in de dealloc pas releasen en gewoon gebruiken. |
Code:
- (NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section ---------- Bericht automatisch samengevoegd op 19 januari 2012 om 22:45 ---------- En hier ook nog in de cellForRowAtIndexpath: methode: Code:
if ([theTextfield.text length] == 0) { |
ik snap 'm. Nou, ik heb je dus helaas niet kunnen helpen :(. Succes verder.
|
Dankjewel! en bedankt voor je hulp!
|
Alle tijden zijn GMT +2. Het is nu 19:25. |