如何从iOS中的UITextView获取n行文本

时间:2014-05-21 09:59:58

标签: ios objective-c nsstring uitextview cgsize

在我的应用程序中,我需要限制用户只在UITextView中输入7行。当他尝试在8行输入文本时,我们需要停止允许编辑并显示警告消息。通过使用获取UITextView文本的CGSize,它工作正常。

但是当用户在UITextView中输入文本作为粘贴时,如果文本超过7行则不允许。根据要求 我需要将7行文本从entred(复制和粘贴)转换为UITextView。

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string
    {
        NSString *temp = [textView.text stringByReplacingCharactersInRange:range withString:string]
        CGSize size = [temp sizeWithFont:textView.font constrainedToSize:CGSizeMake(textView.frame.size.width,999) lineBreakMode:UILineBreakModeWordWrap];
        int numLines = size.height / textView.font.lineHeight;
        if (numLines <= 8)
        {
            return true;
        }

//Alert
    return false;
}

请帮我解决这个问题。 在此先感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用UITextViewTextDidChangeNotification通知提醒您其他更改,例如正在粘贴的文字。(在bottom of this page引用)

或者,UITextView上还有一个方便的类别,可以使用UITextField UIControl事件that can be found here