第二个错误 ViewController 'doneAccessory' 的重新声明无效
Error in 2nd ViewController Invalid redeclaration of 'doneAccessory'
我的问题下方是我在 xCode 10 中用于在弹出键盘上放置 "Done" 按钮的代码。
我有第二个 ViewController 但不知道如何在第二个上使用此代码。我的第二个 ViewController 中显示的错误是:
Invalid redeclaration of 'doneAccessory'
Invalid redeclaration of 'addDoneButtonOnKeyboard()'
Invalid redeclaration of 'doneButtonAction()'
extension UITextField{
@IBInspectable var doneAccessory: Bool{
get{
return self.doneAccessory
}
set (hasDone) {
if hasDone{
addDoneButtonOnKeyboard()
}
}
}
func addDoneButtonOnKeyboard()
{
let doneToolbar: UIToolbar = UIToolbar(frame: CGRect.init(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50))
doneToolbar.barStyle = .default
let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let done: UIBarButtonItem = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.doneButtonAction))
let items = [flexSpace, done]
doneToolbar.items = items
doneToolbar.sizeToFit()
self.inputAccessoryView = doneToolbar
}
@objc func doneButtonAction()
{
self.resignFirstResponder()
}
}
请将此 UITexfield 扩展添加到您的助手 class。将所有扩展都放在助手 class.
中是一种很好的做法
您无需对第二个视图控制器进行任何设置。您需要打开您的故事板和 select 您想要完成按钮的文本字段。找到图片设置完成按钮就没有问题了
我的问题下方是我在 xCode 10 中用于在弹出键盘上放置 "Done" 按钮的代码。 我有第二个 ViewController 但不知道如何在第二个上使用此代码。我的第二个 ViewController 中显示的错误是:
Invalid redeclaration of 'doneAccessory'
Invalid redeclaration of 'addDoneButtonOnKeyboard()'
Invalid redeclaration of 'doneButtonAction()'
extension UITextField{
@IBInspectable var doneAccessory: Bool{
get{
return self.doneAccessory
}
set (hasDone) {
if hasDone{
addDoneButtonOnKeyboard()
}
}
}
func addDoneButtonOnKeyboard()
{
let doneToolbar: UIToolbar = UIToolbar(frame: CGRect.init(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50))
doneToolbar.barStyle = .default
let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let done: UIBarButtonItem = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.doneButtonAction))
let items = [flexSpace, done]
doneToolbar.items = items
doneToolbar.sizeToFit()
self.inputAccessoryView = doneToolbar
}
@objc func doneButtonAction()
{
self.resignFirstResponder()
}
}
请将此 UITexfield 扩展添加到您的助手 class。将所有扩展都放在助手 class.
中是一种很好的做法您无需对第二个视图控制器进行任何设置。您需要打开您的故事板和 select 您想要完成按钮的文本字段。找到图片设置完成按钮就没有问题了