我正在尝试将值从addKey函数传递给Selector函数(didTapAny函数),但无法确定如何。以下是我的代码:
var keyName: UIButton!
func addKey(var keyTitle: String, var yValue: Float32){
keyName = UIButton.buttonWithType(.System) as UIButton
keyName.setTitle(keyTitle, forState: .Normal)
keyName.sizeToFit()
keyName.setTranslatesAutoresizingMaskIntoConstraints(false)
// Couldn't figure how to pass parameter value to Selector at this line
// action: Selector("didTapAny:")
keyName.addTarget(self, action: "didTapAny", forControlEvents: .TouchUpInside)
keyName.titleLabel.font = UIFont.systemFontOfSize(24)
keyName.backgroundColor = UIColor(white: 0.9, alpha: 9)
keyName.layer.cornerRadius = 5
view.addSubview(keyName)
var keyNameButtonLeftSideConstraint = NSLayoutConstraint(item: keyName, attribute: .CenterY, relatedBy: .Equal, toItem:view, attribute:.CenterY, multiplier: 1.0, constant: 0.0)
var keyNameButtonBottomConstraint = NSLayoutConstraint(item: keyName, attribute: .CenterX, relatedBy: .Equal, toItem: view, attribute: .CenterX, multiplier: 1.0, constant: yValue)
view.addConstraints([keyNameButtonLeftSideConstraint, keyNameButtonBottomConstraint])
}
// want to pass above function's keyTitle to this function
func didTapAny(keyTitle: String){
var proxy = textDocumentProxy as UITextDocumentProxy
proxy.insertText(keyTitle)
}
感谢。
答案 0 :(得分:6)
//想要将上面函数的keyTitle传递给这个函数
func didTapAny(keyTitle:String){
您无法将任何内容传递给按钮操作方法。该方法将接收对该按钮的引用,您可以访问其currentTitle
属性。它更像是:
func didTapAny(sender: UIButton) {
// use here sender.currentTitle
}