Я пытаюсь добавить число в начало каждой строки всякий раз, когда пользователь вводит новую строку. Я бы хотел, чтобы числа были в порядке (например, в упорядоченном списке), но с моим текущим кодом, если пользователь не добавляет новую строку в конец, а вместо этого добавляет строку в середине UITextView
, она будет продолжайте отсчет с того места, где он остановился внизу - это означает, что NSUInteger
я сделал приращения и не учитываю, что пользователь не сделал новую строку в конце.Каждая новая строка добавляет нумерованный список UITextView
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([text isEqualToString:@"\n"])
{
numbered ++;
NSString *string = [NSString stringWithFormat:@"\n%lu ", (unsigned long)numbered];
[self insertXEveryNewLine:range :textView :string];
return NO;
}
return YES;
}
- (BOOL)insertXEveryNewLine:(NSRange)place :(UITextView *)View :(NSString *)something
{
NSRange cursor = NSMakeRange(place.location + 3, 0);
NSMutableString *mutableT = [NSMutableString stringWithString:View.text];
[mutableT insertString:something atIndex:place.location];
[View setText:mutableT];
return NO;
}
Код, который я только что написал, добавляет пронумерованный список, который увеличивается на 1 каждую новую строку. Теперь, если вы попытаетесь добавить новую строку посередине, а не в конец, она будет увеличиваться на 1 от последнего номера строки, она не будет увеличиваться с предыдущего номера строки. Например, если пользователь добавляет 6 строк к UITextView
, тогда пользователь переходит к строке №3 и добавляет новую строку, он отображает # 7 после строки # 3, поскольку каждый раз, когда пользователь делает новую строку numbered
, увеличивается на 1.
Редактировать
Когда пользователь добавляет новую строку после строки 1, я хочу все строки для обновления. Надеюсь, это яснее.
Непонятно, о чем вы просите о помощи. – shim
У вашего кода есть и другие проблемы. Он не обрабатывает вставку пользователя в текст, особенно если некоторый текст был выделен во время вставки. – rmaddy
Если пользователь добавляет 6 строк в UITextView, пользователь переходит к строке # 3 и добавляет новую строку, он отображает 7 после строки # 3, потому что каждый раз, когда пользователь делает новую строку с номером, увеличивается на 1 – Horray