rever Inviato 28 Aprile 2013 Segnala Condividi Inviato 28 Aprile 2013 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *sRisultante = [textField.text stringByReplacingCharactersInRange: range withString: string]; NSInteger holder; NSScanner *scan = [NSScanner scannerWithString: sRisultante]; return ([scan scanInteger:&holder] /* ||[scan isEqual:???] */ )&&[scan isAtEnd]; } Questo pezzo di codice impedisce all'utente di scrivere su textfield caratteri che non siano numeri. Però la virgola devo accettarla, quindi ho provato con il metodo isEqual : [scan isEqual:@"-"] non funziona, forse perché sbaglio a controllare con la stringa "-" Che cosa devo inserire al posto di @"-" ?? E potreste spiegarmi bene come funziona il metodo isEqual? grazie Link al commento Condividi su altri siti Altre opzioni di condivisione...
bublen Inviato 28 Aprile 2013 Segnala Condividi Inviato 28 Aprile 2013 Provato con ',' ? La virgola é un carattere quindi potrebbe accettare così. Prova anche se non conosco bene NSScanner Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com Link al commento Condividi su altri siti Altre opzioni di condivisione...
bublen Inviato 28 Aprile 2013 Segnala Condividi Inviato 28 Aprile 2013 Ho guardato velocemente la classe. Secondo me dovesti usare charactersToBeSkipped per permettere l'uso della virgola Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com Link al commento Condividi su altri siti Altre opzioni di condivisione...
rever Inviato 29 Aprile 2013 Autore Segnala Condividi Inviato 29 Aprile 2013 se glielo passo come carattere [scan isEqual:','] mi da un errore ed un avviso, non vuole un tipo id, ma io non so cosa voglia dire: Implicit conversion of 'int' to 'id' is disallowed with ARC Incompatible integer to pointer conversion sending 'int' to parameter of type 'id'; [scan charactersToBeSkipped] mi restituisce un campo di caratteri, a me serve un bool: vero=scrive il carattere, falso=non scrive ho cercato cosa sia il tipo id, ma non ci ho capito molto Link al commento Condividi su altri siti Altre opzioni di condivisione...
MacMomo Inviato 29 Aprile 2013 Segnala Condividi Inviato 29 Aprile 2013 ho cercato cosa sia il tipo id, ma non ci ho capito molto id è un puntatore generico ad oggetto. Difficile immaginare che non sai cosa sia se stai programmando, visto che praticamente qualsiasi classe ne fa uso, a partire dai metodi init alle action. Marco - Gallery MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard Link al commento Condividi su altri siti Altre opzioni di condivisione...
robi_78atmac Inviato 17 Maggio 2013 Segnala Condividi Inviato 17 Maggio 2013 puoi usare questo (decide se usare il punto o la virgola e il numero di decimali che vuoi accettare) - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField == self.myTextField) { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; NSString *expression = @"^([0-9]+)?(\\,([0-9]{1,2})?)?$"; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression options:NSRegularExpressionCaseInsensitive error:nil]; NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString options:0 range:NSMakeRange(0, [newString length])]; if (numberOfMatches == 0) return NO; } return YES; } - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } Il nostro nome è sritto nella storia B.R.N. Link al commento Condividi su altri siti Altre opzioni di condivisione...
rever Inviato 27 Maggio 2013 Autore Segnala Condividi Inviato 27 Maggio 2013 grazie mille, mi puoi spiegare come funziona la stringa *expression che hai composto tu? Link al commento Condividi su altri siti Altre opzioni di condivisione...
rever Inviato 3 Giugno 2013 Autore Segnala Condividi Inviato 3 Giugno 2013 fa niente, grazie comunque @"^-?([0-9]+)?(\\.([0-9]{1,2})?)?$" Link al commento Condividi su altri siti Altre opzioni di condivisione...
robi_78atmac Inviato 19 Giugno 2013 Segnala Condividi Inviato 19 Giugno 2013 Ciao, scusa se non ti ho più risp ma non avevo visto il tuo messaggio. probabilmente avrai già capito il significato della stringa, comunque se può esserti utile io uso questo quando ho bisogno: http://gskinner.com/RegExr/?2rhq7 Ciao. Il nostro nome è sritto nella storia B.R.N. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.