Mam UITextView, w którym wstawiam wartości oddzielone przecinkami. ale za każdym razem, gdy wstawiam dowolny tekst i zostawiam po nim dwie lub więcej spacji. Automatycznie dołącza PEŁNY STOP po ostatnim tekście.
Czy to z powodu ustawień telefonu? Nawet jeśli tak. Jak możemy temu zapobiec?
EDYTUJ Aby to odtworzyć... Wprowadź dowolne słowo w UITextView, a następnie spróbuj zastosować dwie spacje. Automatycznie doda kropkę na końcu słowa :)
3 odpowiedzi
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
//Check for double space
return !(range.location > 0 &&
[text length] > 0 &&
[[NSCharacterSet whitespaceCharacterSet] characterIsMember:[text characterAtIndex:0]] &&
[[NSCharacterSet whitespaceCharacterSet] characterIsMember:[[textView text] characterAtIndex:range.location - 1]]);
}
Powyższy kod ograniczy użytkownikowi możliwość wpisania więcej niż jednej spacji.
Dzieje się tak z powodu ustawienia '.' skrót w ustawieniach klawiatury.
Apple opisuje to zachowanie jako: „Dwukrotne dotknięcie spacji spowoduje wstawienie kropki, po której następuje spacja” i jest to rzeczywiście ustawienie systemu iOS (Ustawienia/Ogólne/Klawiatura/"." Skrót).
Użytkownik może wyłączyć to zachowanie, ale wyłączenie go kodem w określonym UITextView wydaje się trudne — patrz iPhone: Wyłącz "dwukrotne dotknięcie spacji dla ." skrót?
Podobne pytania
Nowe pytania
iphone
NIE używaj tego znacznika, chyba że adresujesz konkretnie iPhone'a i / lub iPoda touch firmy Apple. W przypadku pytań niezależnych od sprzętu użyj tagu [ios]. Więcej tagów do rozważenia to [xcode] (ale tylko jeśli pytanie dotyczy samego IDE), [swift], [objective-c] lub [cocoa-touch] (ale nie [cocoa]). Proszę powstrzymać się od pytań dotyczących iTunes App Store lub iTunes Connect. Jeśli używasz języka C #, oznacz tagiem [mono].