-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)
我像上面解決。這是一個明確的方式嗎?
沒有,它說無法指定屬性:「自我」是不可改變的 –