ios - 如何关闭导航栏中文本字段调用的键盘?

标签 ios swift uinavigationbar

我知道如何关闭键盘,我使用这个扩展:

extension UIViewController
{
    func hideKeyboardWhenTappedAround()
    {
        let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
        view.addGestureRecognizer(tap)
    }
    
    func dismissKeyboard()
    {
        view.endEditing(true)
    }
}

并在viewDidLoad中调用hideKeyboardWhenTappedAround

但我现在的问题是我向 navigationBar 添加了 UITextField,并且此扩展不再起作用!

这就是我添加 UITextField 的方式:

    let textField = UITextField(frame: CGRectMake(0,0,textfieldW,0.8*ram.navigationBarHeight) )
    textField.borderStyle = UITextBorderStyle.RoundedRect
    textField.center.y = centerView.center.y
    centerView.addSubview(textField)
    self.navigationItem.titleView = centerView

如何关闭从潜伏在导航栏中的 UITextField 带来的键盘?

enter image description here

最佳答案

引用此文本字段,例如:

var navigationBarField : UITextField?

然后初始化它:

navigationBarField = UITextField(frame: CGRectMake(0,0,textfieldW,0.8*ram.navigationBarHeight) )
textField.borderStyle = UITextBorderStyle.RoundedRect
textField.center.y = centerView.center.y
centerView.addSubview(navigationBarField)
self.navigationItem.titleView = centerView

当你想删除键盘调用时:

navigationBarField?.resignFirstResponder()

关于ios - 如何关闭导航栏中文本字段调用的键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38562968/

相关文章:

ios - EXC_BAD_ACCESS 关于 mergeChangesFromContextDidSaveNotification

ios - 当我使用 UITableViewCell 来自定义每个单元格内容时,在 Swift4 中滚动后屏幕布局被破坏

ios - 无法获取 navigationItem.rightBarButtonItem 的 UIView/Frame - iOS

ios - 如何创建带有后退按钮的导航栏?

android - Xamarin - 在操作栏中添加标题和按钮

ios - Rails "as_json"方法返回无效的 json?

swift - 从 UIImagePickerController 获取图像后,UIImageView 为 iPhone 5 旋转图像

swift - 传递相同的对象上下文 2 两个单独的 View Controller

Swift 3 URL Session - 针对 URL 添加超时

ios - 使用 Storyboards 设置自定义导航栏