Я занимаюсь перекодировкой приложений на основе PUREMVC с объектива-c в Swift.Swift - событие UIButton не срабатывает
Теперь я создаю кнопку формы и отправки, но ни одно из событий, которые она запускает. Ни текстовые поля не редактируются, но не нажата кнопка. Клавиатура на текстовых полях все еще появляется при касании, но никаких событий не запускается. Вот мой код:
class LoginViewController: UIViewController, UITextFieldDelegate{
var emailTF: UITextField!
var passwordTF: UITextField!
var submitBTN: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = UIColor.redColor()
// EMAIL
self.emailTF = ViewElements.formTextField(FORM_DEFAULT_USERNAME)
self.emailTF.tag = 100
self.view.addSubview(self.emailTF)
// PASSWORD
self.passwordTF = ViewElements.formTextField(FORM_DEFAULT_PASSWORD)
self.passwordTF.tag = 200
self.view.addSubview(self.passwordTF)
// SUBMIT
self.submitBTN = ViewElements.formButtonSubmit(FORM_SUBMIT_TEXT)
self.submitBTN.tag = 300
self.submitBTN.addTarget(self, action: "pressedButton", forControlEvents: UIControlEvents.TouchUpInside)
self.submitBTN.userInteractionEnabled = true
self.view.userInteractionEnabled = true
self.view.addSubview(self.submitBTN)
// layout
let tX = (SCREENWIDTH-NAVI_WIDTH)*0.5
let tY = SCREENHEIGHT*0.3
self.emailTF.frame = CGRect(x: tX, y: tY-NAVI_HEIGHT*1.2, width: NAVI_WIDTH, height: NAVI_HEIGHT)
self.passwordTF.frame = CGRect(x: tX, y: tY+NAVI_HEIGHT*0.2, width: NAVI_WIDTH, height: NAVI_HEIGHT)
self.submitBTN.frame = CGRect(x: tX, y: tY+NAVI_HEIGHT*1.6, width: NAVI_WIDTH, height: NAVI_HEIGHT)
// events
self.emailTF.delegate = self
self.passwordTF.delegate = self
print("---1---")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light)) as UIVisualEffectView
visualEffectView.frame = self.introImage.bounds
self.introImage.addSubview(visualEffectView)
visualEffectView.alpha = 0.0
*/
// FORM EVENTS
func textFieldDidBeginEditing(textField: UITextField) {
print ("---")
}
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
print ("---")
return false
}
func pressedButton(sender: UIButton!) {
print("::")
}
}
В случае, если вы хотите увидеть Util я использую для создания элементов:
class func formTextField(myText: String) -> UITextField
{
let newTextField: UITextField = UITextField(frame: CGRect(x: 0, y: 0, width: NAVI_WIDTH, height: NAVI_HEIGHT));
newTextField.text = myText as String
newTextField.borderStyle = UITextBorderStyle.Line
newTextField.backgroundColor = UIColor.colorWithAlphaComponent(UIColor.whiteColor())(0.5)
newTextField.textAlignment = NSTextAlignment.Center
return newTextField
}
class func formButtonSubmit(myText: String) -> UIButton
{
let newButton: UIButton = UIButton()
newButton.setTitle(myText, forState: .Normal)
newButton.setTitleColor(UIColor.blackColor(), forState: .Normal)
newButton.titleLabel!.font = UIFont(name: "InterstateCondensed", size: 45)
newButton.titleLabel!.textColor = UIColor.blackColor()
newButton.titleLabel!.textAlignment = .Center
newButton.backgroundColor = UIColor.colorWithAlphaComponent(UIColor.whiteColor())(0.8)
newButton.frame = CGRect(x: 0, y: 0, width: NAVI_WIDTH, height: NAVI_HEIGHT)
return newButton
}
Действительно странно, что ни одно событие не стреляет. Кто угодно?
Вы добавили селектор в свой контроль? – a4arpan
После того, как вы попробовали все ниже и ничего не помогли, я скопировал весь код представления в новый быстрый проект, и все работает. Так что я еще не сумасшедший. Но вопрос в том, что останавливает управление представлением таким образом? Я хочу, чтобы это работало в рамках PuremVC. –
как вы подключаете это к своей доске объявлений? – adolfosrs