文本输入框就像iPhone上的短信应用程序一样

时间:2010-03-01 22:32:17

标签: iphone objective-c cocoa-touch uikit uitextview

我正在尝试获取类似SMS应用程序中的输入框的可怕时间。

任何人都可以提供一些关于如何构建其中一个并让它看起来很好的指导吗?我需要一个输入框,其形状很好,就像UITextfield一样,但在打字时会垂直拉伸。

我假设我需要计算文本的宽度,并在文本单词换行时垂直拉伸叠加图像框。我最接近的确是拉伸但光线在接近边界时四处弹跳。

更新

我每天都在这方面工作了一个星期,我已经放弃了UITextView。我可以让它适当地伸展,但是当退格时,Textview高度在上线时会收缩太多。当我继续退缩时,它会纠正自己。例如,当我在第4行并退回到第3行时,它会显示此行为。然后,当我继续退格时,它会更正,直到我到达第2行的结尾。然后它会自行更正,......等等。 / p>

我决定尝试将UITextField子类化,但我甚至无法将其显示在我指定的Frame大小中。 150150150150。

4 个答案:

答案 0 :(得分:3)

试试Chat Input Sample。它具有与SMS应用程序类似的外观和功能。

答案 1 :(得分:2)

Three20项目有一个控件可以为你做这个。

来自Three20自述文件:

  

TTTextEditor是一个可以的UITextView   像你一样自动增长   类型。我用它来输入消息   在Facebook聊天,它的行为   类似于Apple短信中的编辑器   应用

答案 2 :(得分:1)

你自己做到了。幸运的是,UITextField can notify you whenever its text changes,幸运的是NSString有方法(在UIKit Additions下)让你get the height of the string given a certain width,幸运的是you can resize a UITextField yourself

答案 3 :(得分:0)

我知道这已经过时了,但对于那些仍然关注这个答案的人来说,Slack现在有一个很好的控制,就是SlackTextViewController