Swift:成为UITextField的第一响应者无法正常工作?
我已经创build了一个自定义UIViewController在故事板上的一个UITextField。 在viewDidLoad
,我将UITextFIeld设置为becomeFirstResponder
,什么都没有发生(没有键盘popup)。
然后我尝试调用resignFirstResponder()
,但它返回false。 接下来,我试图通过使用@上的代码循环所有子视图来find第first responder
是谁, 而不使用私有API获取当前的第一响应者 。 事实certificate,没有任何子视图是第一响应者。
我的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. } }
尽可能简单…为什么不是键盘开始! 我有一件事是自动布局,但我不知道是否会影响键盘popup。
我只是通过调用self.tf.becomeFirstResponder()
indside viewDidLoad()
函数testing它的文本字段,它的工作非常好。 你需要按下command + K来切换你的键盘,就像刚刚指出的nflacco一样,并禁用模拟器中的硬件键盘:
- iOS模拟器 – >硬件 – >键盘
- 取消选中“连接硬件键盘”
我认为
class BLTestViewController: UIViewController, UITextFieldDelegate { @IBOutlet var tf: UITextField override func viewDidLoad() { super.viewDidLoad() tf.delegate = self self.focustf() // Do any additional setup after loading the view. } func focustf(){ self.tf.becomeFirstResponder() } }