UITextField 通过使用 SWRevealViewController 的平移手势识别器来退出第一响应者
UITextField resign first responder by using pan gesture recognizer for SWRevealViewController
我使用 GitHub 中的 SWRevealViewController 创建了侧边栏菜单。在我的正面视图中,我有一个文本字段,默认情况下它会成为第一响应者,提示键盘弹出。现在,当我使用平移手势打开侧边栏菜单时,我需要文本字段退出第一响应者,反之亦然,以便在通过平移手势关闭侧边栏菜单时再次成为第一响应者。
这可以通过使用平移方向来完成吗?
用于在我的项目中实现 SWRevealViewController 功能的代码:
if self.revealViewController() != nil {
myButton.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.rightRevealToggle(_:)), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
我已经在 with/on 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();
}
}
希望对您有所帮助!
我使用 GitHub 中的 SWRevealViewController 创建了侧边栏菜单。在我的正面视图中,我有一个文本字段,默认情况下它会成为第一响应者,提示键盘弹出。现在,当我使用平移手势打开侧边栏菜单时,我需要文本字段退出第一响应者,反之亦然,以便在通过平移手势关闭侧边栏菜单时再次成为第一响应者。
这可以通过使用平移方向来完成吗?
用于在我的项目中实现 SWRevealViewController 功能的代码:
if self.revealViewController() != nil {
myButton.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.rightRevealToggle(_:)), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
我已经在 with/on 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();
}
}
希望对您有所帮助!