Objective C:如何创建一个多行的UITextField?

18 浏览
0 Comments

Objective C:如何创建一个多行的UITextField?

可能重复:

如何创建一个多行的UITextfield?

我应该如何实现一个多行文本框,就像我在iPhone信息应用程序中看到的那样?

看起来一旦输入的长度超过了长度限制,就会自动创建第二行。

编辑:更新以澄清我在使用UITextView时遇到的问题。

对我来说,我想要模仿UITextView的外观和感觉,就像下面显示的那样。我不确定如何使用UITextView来实现。例如:

1)如果我的文本需要溢出到下一行,如何动态扩展框?

2)如何添加下面所示的边框和样式?

3)如何将文本框附加到键盘的正上方(而不是在视图中)?

我知道Instagram也有类似的功能,如果有人可以指点我正确的方向,那就太好了。提前感谢。

0
0 Comments

问题:如何创建一个多行的UITextField?

原因:需要创建一个可以多行输入的UITextField。

解决方法:

1. 导入UIKit库。

2. 创建一个UIViewController类,添加需要的视图和控件。

3. 在dealloc方法中释放视图和控件。

4. 在viewDidLoad方法中添加键盘显示和隐藏的通知观察者,并设置文本框的滚动和字体。

5. 在keyboardWillShow方法中,根据键盘的高度调整视图的高度和位置。

6. 在keyPressed方法中,根据输入的文本计算文本框的新高度,并根据高度的变化调整视图的位置和大小。

7. 在chatButtonClick方法中,隐藏键盘并重置视图和文本框的状态。

8. 在keyboardWillHide方法中,根据键盘的高度调整视图的高度和位置。

通过以上步骤,我们可以创建一个可以多行输入的UITextField。

0
0 Comments

问题的出现原因是UITextField不允许多行输入,但可以使用UITextView来代替,并使用NSString -sizeWithFont函数来确定所需的空间大小。解决方法是使用UITextView代替UITextField,然后使用NSString -sizeWithFont函数来计算所需的高度,并将其应用到UITextView的frame属性上。对于iOS 8及以上版本,可以使用sizeWithAttributes函数来代替sizeWithFont函数,并使用titleFieldHeight作为布局的指标。虽然这种方法不能完全解决换行和默认间距的问题,但在大多数情况下都能工作。关于为什么使用_textField而不是...View的问题目前没有解答。

0