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 :)

5
Suresh Varma 28 lipiec 2011, 08:23
1
To się nie dzieje, kiedy to robię, czy możesz nam o tym powiedzieć więcej, na przykład jak wstawiasz tekst i może być to, jaki tekst wstawiasz..
 – 
Robin
28 lipiec 2011, 08:53
Tak, wypróbowałem to tylko z uitextview i nadal nie umieszczam żadnych kropek (.) dla dwóch spacji, możesz chcieć ponownie sprawdzić swój ciąg w dzienniku przed ustawieniem właściwości text twojego textview.
 – 
Robin
28 lipiec 2011, 11:18

3 odpowiedzi

Najlepsza odpowiedź
- (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.

1
Suresh Varma 1 sierpień 2011, 12:36

Dzieje się tak z powodu ustawienia '.' skrót w ustawieniach klawiatury.

2
Krizai 21 sierpień 2013, 17:50

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?

2
Community 23 maj 2017, 15:01