2010-02-27 14 views
9

Desidero trovare un modo per attivare in modo programmatico il selettore che fa sì che la tastiera dell'iPhone passi da lettere a numeri. Sono consapevole che posso cambiare il tipo di tastiera, ma voglio sapere se c'è un modo per farlo senza cambiare tipo di tastiera.È possibile attivare a livello di programmazione il pulsante "passa al tastierino numerico" sulla tastiera dell'iPhone

+0

è questo per UIWebView o qualche altra sottoclasse di UIView? EDIT: Mi spiace, ho appena notato il tag uitextfield – conorgriffin

risposta

6

Non è possibile cambiare a livello di tastiera (alfanumerico alfabetico in keyplane numerico in simbolo di keyplane), almeno non in alcun modo supportato pubblicamente. Come hai detto, puoi cambiare il tipo di tastiera o l'aspetto dei tratti di input del testo del primo risponditore, ma questo è diverso dal passaggio tra i diversi keyplanes, che solo l'utente dovrebbe essere in grado di fare.

1

Date un'occhiata a questo:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString * cellIdentifier = @"CellIdentifier"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    if(cell == nil) 
    { 
     cell = [ [ [UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease]; 
     cell.textLabel.font = [UIFont boldSystemFontOfSize:14.0f]; 
     cell.textLabel.textColor = [UIColor whiteColor]; 
    } 

    UITextField * textField = [ [ UITextField alloc] initWithFrame:CGRectMake(55.0f, 10.0f, 230.0f, 31.0f)]; 
    textField.textColor = [UIColor whiteColor]; 

    textField.delegate = self; 
c this care fully ///////////if(indexPath.row == 0) 
c this care fully // textField.keyboardType = UIKeyboardTypeDefault; 
c this care fully //else 
c this care fully // textField.keyboardType = UIKeyboardTypePhonePad; 
    textField.autocorrectionType = UITextAutocorrectionTypeNo; 
    [cell.contentView addSubview:textField]; 

    if(indexPath.row == 0) 
    { 
     self.sender = textField; 
     cell.textLabel.text = @"From:"; 
    } 
    else 
    { 
     self.mobileNumber = textField; 
     cell.textLabel.text = @"To:"; 
    } 
    [textField release]; 
    if(indexPath.row == 1) 
    { 
     UIButton * contactsButton = [UIButton buttonWithType:UIButtonTypeContactAdd]; 
     [contactsButton addTarget:self action:@selector(addContact:) forControlEvents:UIControlEventTouchUpInside]; 
     cell.accessoryView = contactsButton; 

    } 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    return cell; 

} 

controllare dove ho commentato "c questa cura pienamente"

Questo vi aiuterà a cambiare tastiera di programmazione.

+0

puoi correggere il rientro nel tuo codice? – rickharrison

6

Un semplice trucco: Quando si desidera cambiare il keyplane di una tastiera attiva come da alfabeto per tastierino numerico, mentre la modifica di un UITextField, primo set il nuovo valore alla proprietà KEYBOARDTYPE del campo di testo, accanto inviare un resignFirstResponder, finalmente un messaggio diventaFirstResponder nel campo di testo. Per esempio.

textfield.keyboardType = UIKeyboardTypeNumberPad; 
[textField resignFirstResponder]; 
[textField becomeFirstResponder]; 

Swift:

textField.keyboardType = .numberPad 
textField.resignFirstResponder() 
textField.becomeFirstResponder() 

Speranza che aiuta ;-D

+0

Qualsiasi parola sulle app viene rifiutata per fare ciò? –

+2

Usa 'textField.reloadInputViews()' invece! –

+0

@NikKov 'textField.reloadInputViews()' non funziona da solo. – David

Problemi correlati