ios – Swift:在UITextField上成为第一个响应者不工作?

我在Storyboard上创建了一个UITextField的自定义UIViewController.在viewDidLoad上,我将UITextFIeld设置为FirstResponder,没有发生任何事情(没有键盘弹出).

然后我尝试调用resignFirstResponder(),但它返回false.接下来,我试图通过使用@ Get the current first responder without using a private API上的代码循环所有的子视图来找出第一个响应者.最终没有一个子视图是第一个响应者.

我的ViewController在故事板

我的代码

class BLTestViewController: UIViewController,UITextFieldDelegate {

    @IBOutlet var tf: UITextField

    override func viewDidLoad() {
        super.viewDidLoad()

        tf.delegate = self
        tf.becomeFirstResponder()
        // Do any additional setup after loading the view.
    }
}

为什么不是键盘启动!我有一件事是汽车布局,但我不知道是否影响键盘弹出.

解决方法

我只是通过调用self.tf.becomeFirstResponder()indside viewDidLoad()函数来测试它,并且工作绝对正常.您需要通过按nflacco指令K键来切换键盘,并将模拟器中的硬件键盘禁用:

> iOS模拟器 – >硬件 – >键盘>取消选中“连接硬件键盘

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...