swift中的翻译是什么?它是某种变量类吗?
static UIView *FXFormsFirstResponder(UIView *view)
{
if ([view isFirstResponder])
{
return view;
}
for (UIView *subview in view.subviews)
{
UIView *responder = FXFormsFirstResponder(subview);
if (responder)
{
return responder;
}
}
return nil;
}
原始来源:https://github.com/nicklockwood/FXForms/blob/master/FXForms/FXForms.m
答案 0 :(得分:2)
我不知道如何将代码转换为swift 完全,但我可以提供更好的方法来实现它:
extension UIView
{
func firstResponder() -> UIView?
{
if (self.isFirstResponder)
{
return self
}
for subview in subviews
{
if let responder = subview.firstResponder()
{
return responder
}
}
return nil
}
}
更新: FXFormsFirstResponder()
只是一个c函数(不是Objective-c),但里面有一些Obj-c代码。这是混合面向对象和程序样式的不太好的方式,但你可以用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
}
答案 1 :(得分:-1)
以上代码的Swift代码:
var FXFormsFirstResponder: UIView
if view.isFirstResponder() {
return view
}
for subview: UIView in view.subviews {
var responder: UIView = FXFormsFirstResponder(subview)
if responder != nil {
return responder
}
}
return nil