UITextView позиция - PullRequest
       13

UITextView позиция

2 голосов
/ 16 апреля 2010

Есть ли способ найти ypos в UITextView или / и найти строку с активным маркером в данный момент?

С уважением.

Ответы [ 2 ]

2 голосов
/ 16 апреля 2010

вам нужно сделать некоторые расчеты найти позицию курсора по

NSRange cursorPosition = [tf selectedRange];

подстрока из позиции курсора использует эту подстроку для вычисления ширины строки по

sizeWithFont:constrainedToSize: 

, а затем разделите его на ширину ширины вашего TextView ... он даст вам, на какой строке находится ваш курсор ... Логически это кажется правильным ... не пробовал ... попробуйте, дайте мне знать, если работает или нет ..

1 голос
/ 28 июля 2010

Примерно так:

- (int) getCurrentLine: (UITextView *) textView{
    int pos = textView.selectedRange.location;
    NSString *str =textView.text;
    NSCharacterSet *charset = [NSCharacterSet whitespaceAndNewlineCharacterSet];
    int num = pos;
    for (; num< str.length; num++){
        unichar c = [str characterAtIndex:num];
        if ([charset characterIsMember:c]) break;
    }
    str = [str substringToIndex:num];

    CGSize tallerSize =  CGSizeMake(textView.frame.size.width - 16, 999999);
    CGSize lc1 = [@"Yyg" sizeWithFont: textView.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];
    CGSize lc = [str sizeWithFont: textView.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];
    lc.height = lc.height / lc1.height;
    return lc.height;
}
...