如何为 0 行的消息输入创建 TextField?
How to create TextField for message input with 0 lines?
我为聊天应用中的消息输入创建了 TextField
。实际上,我将 TextField
连接为操作 (editingChanged)。这就是为什么我不能使用 TextView
而不是 TextField
,我无法在代码中使用 TextView
执行任何操作。如果您知道如何在 TextField
中设置 0 行(就像在标签中一样)并启用滚动。请帮助我!
如果要显示多行,则必须使用UITextView
。变化不是很大,处理UITextView
而不是UITextField
。我假设您的 UIViewController
被称为:MyViewController
:
class MyViewController: UIViewController, UITextViewDelegate { //1
@IBOutlet weak var textView: UITextView! //2
override func viewDidLoad() {
super.viewDidLoad()
textView.delegate = self //3
}
func textViewDidChange(textView: UITextView) { //4
print(textView.text) //put here your code from textField's action
}
}
- 记得添加
UITextViewDelegate
协议以列出您的视图控制器符合
- 为 textView 添加 outlet(记得在你的 storyboard/xib 文件中添加它)
- 将当前视图控制器设置为 textView 的委托
- 添加
textViewDidChange
功能 - 使用方法与使用 textField 的操作相同
我为聊天应用中的消息输入创建了 TextField
。实际上,我将 TextField
连接为操作 (editingChanged)。这就是为什么我不能使用 TextView
而不是 TextField
,我无法在代码中使用 TextView
执行任何操作。如果您知道如何在 TextField
中设置 0 行(就像在标签中一样)并启用滚动。请帮助我!
如果要显示多行,则必须使用UITextView
。变化不是很大,处理UITextView
而不是UITextField
。我假设您的 UIViewController
被称为:MyViewController
:
class MyViewController: UIViewController, UITextViewDelegate { //1
@IBOutlet weak var textView: UITextView! //2
override func viewDidLoad() {
super.viewDidLoad()
textView.delegate = self //3
}
func textViewDidChange(textView: UITextView) { //4
print(textView.text) //put here your code from textField's action
}
}
- 记得添加
UITextViewDelegate
协议以列出您的视图控制器符合 - 为 textView 添加 outlet(记得在你的 storyboard/xib 文件中添加它)
- 将当前视图控制器设置为 textView 的委托
- 添加
textViewDidChange
功能 - 使用方法与使用 textField 的操作相同