如何在用户输入 Swift 时调整 UITextField 的大小

How to resize UITextField as user types in Swift

我正在尝试在 IOS8 上的 Swift 中编写消息传递应用程序。本质上,我是在尝试模仿 IOS 中的短信应用程序在您到达文本字段边缘时所做的事情——文本字段的高度增加,并创建一个新行。现在,当我打字时,文字会滚动到一边。如何防止侧边滚动并调整文本字段的大小?

我肯定会将 UITextView 与其 textViewDidChange: 委托方法结合使用。您可以跟踪内部文本何时更改,并通过根据您指定的约束测量其内容大小来相应地更新您的 textView 宽度(或高度)。

您还可以重新实现 drawRect: 以添加圆角边框或自定义其 layer 的属性(如 cornerRadius)。

占位符也可以通过跟踪文本更改(无论是通过委托方法还是通知)来实现。

我同意这不是最佳选择,但至少您仍然可以选择模仿 UITextField 行为。