文字字段

时间:2017-01-09 18:11:44

标签: ios swift

我的导航栏中有一个按钮,当按下该按钮时,会调用一个函数(showAddItemtextField),该函数在导航栏中将文本字段显示为titleView。

    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "+", style: .plain, target: self, action: #selector(showAddItemTextField))

到目前为止还不错,我可以在文本字段中键入文本(我知道因为当我点击文本字段时,占位符文本消失了,当我输入时我得到自动完成建议),但是我键入的文本否则是看不见的。

到目前为止,这是我的代码:

// Show text field upon add button press
lazy var addItemTextField: UITextField = {
    let textField = UITextField()
    textField.placeholder = "Add a new item..."

    return textField
}()

func showAddItemTextField() {
    self.navigationItem.titleView = addItemTextField

}

我不确定问题是否是因为新的文本字段(作为navigationItem.titleView)位于通常存在的位置(navigationItem.title)。当文本字段存在时,我是否必须隐藏navigationItem.title?或者是一个不同的问题?

我还应该补充一点,当我点击文字字段时,屏幕键盘不会出现。

1 个答案:

答案 0 :(得分:1)

问题是你的文字字段没有大小。当你创建它时,你没有给它一个大小:

let textField = UITextField()

然后你通过不必要的textField.translatesAutoresizingMaskIntoConstraints行来解决问题。

这对我来说很好用:

    let tf = UITextField(frame:CGRect(origin:.zero, size:CGSize(width:100, height:28)))
    tf.borderStyle = .bezel
    self.navigationItem.titleView = tf

我并不是说这是您想要的尺寸/外观,但它会显示您可以输入的可见文字字段。