Toetsenbord wil niet verbergen discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hallo, Ik heb een grouped tableview met in de 1e cell een textfield. Het ziet er zo uit: Als je op cancel of settings drukt ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#1
|
|||
|
|||
Toetsenbord wil niet verbergen
Hallo,
Ik heb een grouped tableview met in de 1e cell een textfield. Het ziet er zo uit: 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 { [super viewDidAppear:animated]; [theTextfield becomeFirstResponder]; } Code:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; if ([indexPath section] == 0) { if ([cell.contentView.subviews count] == 0) { theTextfield = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 460, 25)]; theTextfield.returnKeyType = UIReturnKeyDone; theTextfield.enablesReturnKeyAutomatically = YES; theTextfield.clearButtonMode = UITextFieldViewModeWhileEditing; theTextfield.tag = 12; theTextfield.placeholder = @"Message"; theTextfield.delegate = self; [theTextfield canResignFirstResponder]; [theTextfield addTarget:self action:@selector(doneTyping) forControlEvents:UIControlEventEditingDidEndOnExit]; [cell.contentView addSubview:theTextfield]; } } } // Configure the cell... if ([indexPath section] == 0) { cell.selectionStyle = UITableViewCellSelectionStyleNone; } else { cell.textLabel.text = @"Default"; cell.textLabel.textAlignment = UITextAlignmentCenter; } return cell; } Code:
- (IBAction)cancel:(id)sender { cancelButtonClicked = YES; [theTextfield resignFirstResponder]; [self.navigationController popViewControllerAnimated:YES]; } Groeten, Jeroen |
|
|
Gesponsorde links (verdwijnt na registratie)
|
#2
|
|||
|
|||
In je .h file moet je vermelden dat je het <UITextFieldDelegate> protocol implementeert en je voegt deze methoden toe:
Code:
- (BOOL) textFieldShouldReturn:(UITextField *)theTextField { [theTextField resignFirstResponder]; return YES; } - (IBAction) textFieldDoneEditing:(id)sender { [sender resignFirstResponder]; }
__________________
Leon [iPhone- en Java ontwikkelaar] |
#3
|
|||
|
|||
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. |
#4
|
|||
|
|||
Hoe heb jij 'theTextField' gedeclareerd?
Zo? Code:
UITextField <UITextFieldDelegate> * theTextField; |
#5
|
|||
|
|||
Nee, zo:
Code:
@interface TwitterMessageViewController: UIViewController <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate> { UITextField *theTextfield; IBOutlet UITableView *theTableVuew; UIBarButtonItem *cancelButton; BOOL cancelButtonClicked; } @property (nonatomic, retain) UITextField *theTextfield; @end |
#6
|
|||
|
|||
Wijzig de property declaratie eens in:
Code:
@property (nonatomic, retain) UITextField <UITextFieldDelegate> * theTextfield; Code:
[theTextField release]; |
#7
|
|||
|
|||
Ik zal het eens proberen!
Ik release theTextField trouwens ook in de dealloc en de viewDidUnload methoden, moet het dan ook in de cellForRowAtIndexPath? |
#8
|
|||
|
|||
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. |
#9
|
|||
|
|||
@Wubbe
Het werkt helaas niet.. |
#10
|
|||
|
|||
Laatste poging. waarom heb je:
Code:
[theTextfield addTarget:self action:@selector(doneTyping) forControlEvents:UIControlEventEditingDidEndOnExit]; |
#11
|
|||
|
|||
Citaat:
---------- Bericht automatisch samengevoegd op 19 januari 2012 om 22:41 ---------- Citaat:
Code:
- (BOOL) textFieldShouldReturn:(UITextField *)theTextField { [theTextField resignFirstResponder]; return YES; } |
#12
|
|||
|
|||
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. |
#13
|
|||
|
|||
Code:
- (NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { if (section == 0) { if ([theTextfield.text length] > 0) { return [NSString stringWithFormat:@"Listened to: title - artist %@", theTextfield.text]; } else { return [NSString stringWithFormat:@"Listened to: title - artist"]; } } else { return nil; } } ---------- Bericht automatisch samengevoegd op 19 januari 2012 om 22:45 ---------- En hier ook nog in de cellForRowAtIndexpath: methode: Code:
if ([theTextfield.text length] == 0) { cell.detailTextLabel.text = [NSString stringWithFormat:@"0/30"]; } else { cell.detailTextLabel.text = [NSString stringWithFormat:@"%.0u/30", [theTextfield.text length]]; } if ([theTextfield.text length] > 30) { [self.navigationItem setHidesBackButton: YES animated: YES]; cell.detailTextLabel.textColor = [UIColor colorWithRed:((1.0/255)*218) green:((1.0/255)*0) blue:((1.0/255)*0) alpha:1.0]; } else { [self.navigationItem setHidesBackButton: NO animated: YES]; cell.detailTextLabel.textColor = [UIColor colorWithRed:(1.0/255)*79 green:(1.0/255)*97 blue:(1.0/255)*146 alpha:1.0]; } |
#14
|
|||
|
|||
ik snap 'm. Nou, ik heb je dus helaas niet kunnen helpen . Succes verder.
|
#15
|
|||
|
|||
Dankjewel! en bedankt voor je hulp!
|
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
hoe kan ik toetsenbord verbergen? | Roccade | iPhone algemeen | 4 | 19-11-10 14:08 |
Toetsenbord werk niet | saver1982 | iPhone algemeen | 0 | 10-09-09 02:57 |
IPhone Toetsenbord werkt niet | saver1982 | iPhone algemeen | 6 | 12-02-09 20:30 |
iphone wil niet veder beeld blijft op het oplaad teken staan hij wil niks meer | mike18 | Unlock [archief] | 2 | 18-02-08 09:58 |
|
|