I don’t know how to convert your code to swift exactly, but I can offer a better way to implement this:
extension UIView
{
func firstResponder() -> UIView?
{
if (self.isFirstResponder)
{
return self
}
for subview in subviews
{
if let responder = subview.firstResponder()
{
return responder
}
}
return nil
}
}
Update: the FXFormsFirstResponder()
is just a c function (not Objective-c), but with some Obj-c code inside. This is not very good manner to mix object-oriented and procedural style, but you can implement it with a global function in swift:
func FXFormsFirstResponder(view: UIView) -> UIView?
{
if (view.isFirstResponder)
{
return view
}
for subview in view.subviews
{
if let responder = FXFormsFirstResponder(subview)
{
return responder
}
}
return nil
}