UITextField通过使用用于SWRevealViewController的平移手势识别器来重新签名第一响应者

时间:2016-06-01 15:33:05

标签: ios swift uitextfield uipangesturerecognizer swrevealviewcontroller

我使用GitHub中的SWRevealViewController创建了一个侧边栏菜单。在我的前面View我有一个文本字段,默认情况下会成为第一响应者,提示键盘弹出。现在,当我使用平移手势打开侧边栏菜单时,我需要将文本字段作为第一响应者辞职,反之亦然,当通过平移手势关闭侧边栏菜单时,再次成为第一响应者。

可以通过使用摇摄方向来完成吗?

用于在我的项目中实现SWRevealViewController功能的代码:

  if self.revealViewController() != nil {
        myButton.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.rightRevealToggle(_:)), forControlEvents: UIControlEvents.TouchUpInside)
        self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
    }

1 个答案:

答案 0 :(得分:0)

我在SWRevealViewController上工作了一段时间,然后回答你的问题,你可以将你的frontViewController添加为SWRevealViewControllerDelegate,然后实现这个功能

func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)

frontViewController转到左侧或前方位置时,您会收到通知

这是代码

在你的frontViewController中

你需要添加

class FrontViewController: UIViewController, SWRevealViewControllerDelegate
 {
@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().delegate = self;
 }

然后

func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition) {
if(position == FrontViewPosition.Left)
{
    self.textField.becomeFirstResponder();

}else
{
    self.textField.resignFirstResponder();
}
}

我希望这能帮到你!