检查 UITextView 中的文本是否由于自动换行而换行
Check if text in UITextView went to new line due to word wrap
如何检查 UITextView
中的文本是否由于自动换行而转到下一行?
我目前有代码来检查用户是否输入了新行(从键盘)。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
{
if ( [text isEqualToString:@"\n"] ) {
...
}
return YES;
}
您可以使用 UITextView 的 contentSize.height 属性 来确定您的文本视图如何 'tall'。然后,您可以除以 lineHeight 来计算行数。 @nacho4d 提供了这行漂亮的代码来做到这一点:
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
}
如何检查 UITextView
中的文本是否由于自动换行而转到下一行?
我目前有代码来检查用户是否输入了新行(从键盘)。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
{
if ( [text isEqualToString:@"\n"] ) {
...
}
return YES;
}
您可以使用 UITextView 的 contentSize.height 属性 来确定您的文本视图如何 'tall'。然后,您可以除以 lineHeight 来计算行数。 @nacho4d 提供了这行漂亮的代码来做到这一点:
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
}