【问题标题】:UITextField becomeFirstReponder not workingUITextField becomeFirstReponder 不起作用
【发布时间】:2014-11-11 20:59:40
【问题描述】:

我是 iOS 开发的新手,并且已经使用 Objective-C 完成了教程,但现在我正在尝试 Swift。无论如何,我正在编写一个应用程序并有一个条形按钮项,它与另一个具有三个 UITextFields 的视图相连接。当用户在第一个 UITextField 内点击时,我希望键盘弹出。我使用一个动作来触发它并在 UITextField 上发出 becomeFirstResponder()。我也尝试在 ViewDidAppear 委托中执行此操作,并且键盘不会弹出。我只在使用 iPhone 4s 和运行 iOS 8.1 的 iPhone 6 的模拟器上尝试过这个,因为我还没有在设备上运行它的密钥(我很便宜)。

这是我的代码

import Foundation
import UIKit

class testViewController : UIViewController
{
@IBOutlet weak var text: UITextField!
@IBAction func textEditing(sender: AnyObject) {
    if self.canResignFirstResponder() == true &&
        text.window != nil &&
        text.canBecomeFirstResponder() == true &&
        text.becomeFirstResponder() == true
    {
        NSLog("Did set responder\n")
    }
    else
    {
        NSLog("Failed setting text as first responder")
    }
}
@IBAction func doneAction(sender: AnyObject) {
    self.dismissViewControllerAnimated(true, completion: nil)
}
override func viewWillAppear(animated: Bool) {
    text.becomeFirstResponder()
    }
}

在 viewDidAppear 中调用 becomeFirstResponder() 时,焦点确实会切换到第一个 UITextField。

任何想法。我确实搜索了许多帖子以找到答案,但他们的解决方案均无效。

【问题讨论】:

    标签: ios iphone swift uitextfield


    【解决方案1】:

    如果您使用物理键盘进行输入,您的输入是否会按预期进入文本字段?在 iOS8 模拟器中,键盘默认是隐藏的。请参阅 iOS 模拟器上的 Hardware -> Keyboard 设置。

    【讨论】:

    • 是的,如果我通过 cmd+k 启用键盘,它会弹出。当我离开视图或应用程序时,它会再次弹出。感谢您指出这一点。
    【解决方案2】:

    如果你能用电脑键盘打字,说明'becomeFirstResponder'已经发出,iOS 8在模拟器上默认隐藏键盘,这可能是你看不到键盘弹出的原因

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多