在swift中创建Hashtags

时间:2017-10-17 10:59:47

标签: swift3 uitextfield

我是swift的新手。我正在尝试创建一个可以创建主题标签的视图。您可以在其中键入要转换的单词UITextfield。按下'enter'或'#',它应自动转换为hashtags并显示在标签中,这些标签进一步以数组格式存储。 我尝试了很多教程,但似乎都没有。

1 个答案:

答案 0 :(得分:0)

UITextFielddelegate非常方便。

一个非常简单的实现是使用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内容的其他现有问题。