我使用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())
}
答案 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();
}
}
我希望这能帮到你!