我想为导航栏设置一个可编辑的标题。我找到了这段代码
let navigationTitlelabel = UITextField(frame: CGRectMake(0, 0, 200, 21))
navigationTitlelabel.center = CGPointMake(160, 284)
navigationTitlelabel.textAlignment = NSTextAlignment.Center
navigationTitlelabel.textColor = UIColor.whiteColor()
navigationTitlelabel.text = defaultListName
self.navigationController!.navigationBar.topItem!.titleView = navigationTitlelabel
navigationTitlelabel.delegate = self
我在viewWillAppear
中有。这样我就可以更改视图控制器的标题。然后我为代表实现这些:
func textFieldShouldReturn(textField: UITextField) -> Bool {
resignFirstResponder()
return true
}
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let moc = appDelegate.managedObjectContext
if textField.text != ""{
//save to Core Data
return true
}
return false
}
然而,当我按下返回时,光标仍然闪烁。数据被保存,如果我重新加载VC,标题就是新标题,但我无法退出编辑标题模式"即使我点击另一个按钮。
我该如何解决这个问题?
我在模拟器上测试了这个,Swift 2.2
答案 0 :(得分:1)
使用以下代码修改textFieldShouldReturn
textField.resignFirstResponder()