我是swift的新手。我正在尝试创建一个可以创建主题标签的视图。您可以在其中键入要转换的单词UITextfield
。按下'enter'或'#',它应自动转换为hashtags并显示在标签中,这些标签进一步以数组格式存储。
我尝试了很多教程,但似乎都没有。
答案 0 :(得分:0)
UITextField
有delegate非常方便。
一个非常简单的实现是使用textFieldShouldReturn委托方法,您可以使用它来检测何时按下返回按钮。
告诉您的视图控制器它将采用这样的协议:
class ViewController:UIViewController, UITextFieldDelegate {
...
然后告诉你的textfield在哪里委托它的事件,如果你在视图控制器中创建文本字段,那么使用self
来引用视图控制器,如下所示:
let textField = UITextField()
textField.delegate = self // IMPORTANT
self.view.addSubView(textField)
然后在视图控制器中实现textFieldShouldReturn
方法,如下所示:
class ViewController:UIViewController, UITextFieldDelegate {
...
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if let text = textField.text {
let hashtag = "#\(text)"
print("New hashtag is \(hashtag)")
}
return true // allows the default behaviour of return button, you can return false if you want the keyboard to remain on screen.
}
}
此解决方案不会考虑用户输入多个主题标签,也不会删除空格等。您可能需要考虑格式化/验证此字符串,然后才能使用。
您可能还需要考虑查看涵盖like splitting strings and creating arrays内容的其他现有问题。