检查UITextView中的文本是否由于自动换行而转到新行

时间:2015-03-17 22:50:24

标签: objective-c uitextview word-wrap

如何检查UITextView中的文字是否由于自动换行而转到下一行?

我目前有代码检查用户是否输入了新行(来自键盘)。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
{
    if ( [text isEqualToString:@"\n"] ) {
        ...
    }
    return YES;
}

1 个答案:

答案 0 :(得分:5)

您可以使用UITextView的contentSize.height属性来确定textview的“高”程度。然后,您可以除以lineHeight来计算行数。 @ nacho4d提供了这段代码:#/ p>

int numLines = textView.contentSize.height/textView.font.lineHeight;

有关详细信息,请参阅此问题: How to read number of lines in uitextview

编辑: 所以你可以在-textViewDidChange中执行类似的操作:以检查换行。

int numLines = textView.contentSize.height / textView.font.lineHeight; 
if (numLines != numLinesInTextView){
    numLinesInTextView = numLines;//numLinesInTextView is an instance variable
    //then do whatever you need to do on line change
}