-1
在我的viewController中有一个按钮和textField。当使用点击textField它触发didBeginEdit事件,我可以调用一个工具栏。 这是我的看法:Swift - 通过buttonClick调用UIToolBar事件
当文本字段用户点击看起来象下面这样:
和我的雨燕代码如下:
Class ViewController: UIViewController {
@IBAction func btn(sender: AnyObject) {
// i want to call ToolBar here ...
}
@IBOutlet weak var textFieldOutlet: UITextField!
@IBAction func txtFieldBeginEdit(sender: AnyObject) {
raiseToolBar(textFieldOutlet)
}
var datePicker : UIDatePicker!
let ToolBar = UIToolbar()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func raiseToolBar(textField : UITextField)
{
self.datePicker = UIDatePicker(frame: CGRectMake(0,0,UIScreen.mainScreen().bounds.height , UIScreen.mainScreen().bounds.height/3))
self.datePicker.backgroundColor = UIColor.whiteColor()
self.datePicker.datePickerMode = .Date
textField.inputView = self.datePicker
ToolBar.barStyle = .Default
ToolBar.translucent = true
ToolBar.tintColor = UIColor(red : 92/255, green : 216/255 ,blue : 255/255, alpha: 1)
ToolBar.sizeToFit()
let done = UIBarButtonItem(title: "Tamam" , style: .Plain , target: self, action: #selector(ViewController.doneClick))
let space = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target : nil , action: nil)
let cancel = UIBarButtonItem(title: "İptal" , style: .Plain , target: self, action: #selector(ViewController.cancelClick))
ToolBar.setItems([done , space , cancel], animated: true)
ToolBar.userInteractionEnabled = true
textField.inputAccessoryView = ToolBar
}
func doneClick() {
}
func cancelClick() {
}
}
在这点没有问题。 Bu我想通过在按钮上命名这个UIToolBar(名为btn)。在btnClick事件下,我尝试将空的textField发送到raiseToolBar方法,但它也不起作用。如何编辑我的代码以通过buttonClick调用ToolBar
****************编辑*****************
textFieldOutlet.becomeFirstResponder()
raiseToolBar(textFieldOutlet)
我像上面解决。这是一个明确的方式吗?
没有,它说无法指定属性:“自我”是不可改变的 –