我是 iOS 开发新手,已经完成了使用 Objective-C 的教程,但现在正在尝试 Swift。不管怎样,我正在编写一个应用程序,并且有一个栏按钮项目,该项目可以转到另一个 View ,该 View 上有三个 UITextFields。当用户点击第一个 UITextField 内部时,我希望弹出键盘。我使用一个操作来触发此操作,并在 UITextField 上发出 beginResponder() 。我也尝试在 ViewDidAppear 委托(delegate)中执行此操作,但键盘不会弹出。我只在使用 iPhone 4s 和运行 iOS 8.1 的 iPhone 6 的模拟器上尝试过这个,因为我还没有在设备上运行它的 key (我很便宜)。
这是我的代码
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。
任何想法。我确实搜索了很多帖子来找到答案,但他们的解决方案都不起作用。
最佳答案
如果您使用物理键盘打字,您的输入是否会如您预期的那样进入文本字段?在iOS8模拟器中,键盘默认是隐藏的。请参阅 iOS 模拟器上的 Hardware -> Keyboard
设置。
关于ios - UITextField becomeFirstReponder 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26874472/