【问题标题】:iPhone : How to obtain the number of lines entered in textView without consideration of widthiPhone:如何在不考虑宽度的情况下获取textView中输入的行数
【发布时间】:2011-01-10 10:08:24
【问题描述】:

在我的 iPhone 应用程序中,我有一个文本视图,用户将在其中输入多行数据。

现在我需要一个可以获取行数的解决方案。

我需要一个不考虑宽度的解决方案。

我只需要用户在 textView 中输入的行数。

我该怎么做?

【问题讨论】:

    标签: iphone cocoa-touch ios4 uitextview ios-4.2


    【解决方案1】:

    既然您说的是“不考虑宽度”而不是“不考虑高度”,那么您就是这样做的:

    int numberOfLines = yourUITextView.contentSize.height / yourUITextView.font.lineHeight
    

    UIFont 属性lineHeight 是iOS4.0 的新属性,旧版本使用leading 属性。

    编辑,

    此答案适用于自动插入换行符(即行变长)的文本视图,如果您只想知道手动插入换行符的数量,Terentes 答案会这样做。

    要计算手动插入的换行符,这个 hack 应该这样做:

    int numberOfManuallyBreaks = [[yourUITextView componentsSeparatedByString:@"\n"] count];
    

    【讨论】:

    • 你不能直接使用你的UITestView.font.lineheight吗?
    • @Aditya ,只给你一行的高度。
    • 好的,我会尝试并回复您。感谢您的意见
    • 非常感谢比约恩。您的解决方案效果很好。非常简单有效的解决方案。非常感谢..我一直在寻找解决方案一段时间。 :) 一票赞成 :)
    【解决方案2】:

    您是否尝试过使用 TextView 的 numberOfLines 属性来获取行数。

    【讨论】:

    • 你在哪里可以找到这个属性?它不适用于 UITextView。
    • 我没有在 textView Aditya 中找到行数属性。你在哪里找到的?
    • @Parth BJorn 的回答是正确的
    【解决方案3】:

    你的意思是当用户按下键盘上的返回键时?如果是这样计算其中的 \n 。 希望对您有所帮助。

    NSArray *arrayWithLines = [myString componentsSeparatedByString:@"\n"];
    NSLog(@"Number of Lines:%@",[arrayWithLines count]);
    

    【讨论】:

    • 但是我该怎么做呢?当我看到代码时,其中没有显示任何 \n 。怎么做?请给一些小代码sn-p
    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2015-02-28
    • 2017-02-22
    相关资源
    最近更新 更多