Correctement sous-classement UITextField en swift

J'ai donc ces objets textfield que j'ai réalisé qu'ils ont tous les mêmes propriétés, j'ai donc créé une nouvelle classe appelée "UserInputs" et s'étendait de UITextField, tout fonctionne correctement sauf une chose, UITextFieldDelegate fonctions ne fonctionne pas, je veux dire quand je me concentre sur eux, il ne fonctionne pas, je veux l'ajouter dans le code parce que quand vous vous concentrez sur mon champs de saisie, ils changent de frontière, comment la sous-classe de UITextField

les seuls problèmes que j'ai sont que des fonctions:

textFieldDidBeginEditing
textFieldDidEndEditing

et donc ne fonctionne pas.

c'est mon classe, où tout se passe:

import Foundation

import UIKit

class RegistrationViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var firstName: UserInputs!
@IBOutlet weak var test: UserInputs!

override func viewDidLoad() {
    super.viewDidLoad()
    self.firstName.delegate = self
    self.test.delegate = self
}

}

C'est mon sous-classe:

class UserInputs: UITextField{
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
createBorder()
}
func createBorder(){
let border = CALayer()
let width = CGFloat(2.0)
border.borderColor = UIColor(red: 55/255, green: 78/255, blue: 95/255, alpha: 1.0).CGColor
border.frame = CGRect(x: 0, y: self.frame.size.height-width, width: self.frame.size.width, height: self.frame.size.height)
border.borderWidth = width
self.layer.addSublayer(border)
self.layer.masksToBounds = true
//print("border created")
}
func textFieldDidBeginEditing() {
print("focused")
self.pulseBorderColor()
}
func textFieldDidEndEditing() {
print("lost focus")
self.reversePulseBorderColor()
}
func pulseBorderColor(){
let pulseAnimation = CABasicAnimation(keyPath: "borderColor")
pulseAnimation.duration = 0.35
pulseAnimation.fromValue = UIColor(red: 55/255, green: 78/255, blue: 95/255, alpha: 1.0).CGColor
pulseAnimation.toValue = UIColor(red: 252/255, green: 180/255, blue: 29/255, alpha: 1.0).CGColor
pulseAnimation.fillMode = kCAFillModeForwards
pulseAnimation.removedOnCompletion = false
pulseAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
self.layer.sublayers![0].addAnimation(pulseAnimation,forKey: nil)
}
func reversePulseBorderColor(){
let pulseAnimation = CABasicAnimation(keyPath: "borderColor")
pulseAnimation.duration = 0.35
pulseAnimation.fromValue = UIColor(red: 252/255, green: 180/255, blue: 29/255, alpha: 1.0).CGColor
pulseAnimation.toValue = UIColor(red: 55/255, green: 78/255, blue: 95/255, alpha: 1.0).CGColor
pulseAnimation.fillMode = kCAFillModeForwards
pulseAnimation.removedOnCompletion = false
pulseAnimation.timingFunction = CAMediaTimingFunction(name:  kCAMediaTimingFunctionEaseInEaseOut)
self.layer.sublayers![0].addAnimation(pulseAnimation,forKey: nil)
}
}

ce code a travaillé quand j'avais pas de sous-classe et était en train de faire à l'intérieur de ma classe principale, mais après la création de la sous-classe accent fonctions cessé de travailler, tout le reste fonctionne

principal problème est que je veux mettre en œuvre

func textFieldDidBeginEditing() {
print("focused")
}
func textFieldDidEndEditing() {
print("lost focus")
}

dans mes objets textfield donc je n'ai pas l'écrire, encore et encore

OriginalL'auteur nikagar4 | 2016-01-14