在UITextField上点击时不会出现UIKeyboard

这是注册VC,因为轻敲弹出白色空间不是键盘这是登录VC,因为Tapping弹出的空白不是键盘

我陷入了一个奇怪的问题,因为其他的事情都很好。 突然间,当我编译我的应用程序,并得到这个问题,当我点击UITextField白色空间popup,但键盘不可见,我无法input任何东西。

以下将解决键盘问题

模拟器 – >硬件 – >键盘 – >切换软件键盘应该可以解决这个问题。

![模拟器 - >硬件 - >键盘 - >切换软件键盘]

尝试这个:

去:

 iOS Simulator -> Hardware -> Keyboard 

并取消选中

 'Connect Hardware Keyboard' 

或者简单地做: ⇧shift + ⌘Command + K

保持编码……… 🙂

由于模拟器设置,这也可能发生在Xcode 6 / iOS 8上:

Xcode 6:键盘不显示在模拟器中

我有同样的问题,但只在5s模拟器。 而且,我试图去模拟器 – >重置内容和设置。 这实际上解决了这个问题。

在这方面检查两件事情

1- userInteractionEnabled=true

2- textFielfd.editable = YES;

希望这会解决你的问题。

检查sockets是否已被映射,并将代表设置为控制器? 另外检查控制器是否有<UITextFieldDelegate>设置。 发送文件检查员的屏幕截图,也许?

检查一下你是否在做类似的事情

 [self.view endEditing:YES]; [self.myTextField resignFirstResponder]; 

或者你可能将第一个响应者分配给其他控件。

希望能帮助到你

我有类似的问题,但在实际的设备上。
我与苹果开发者技术支持(Apple DTS)交谈,他们告诉我这是一个快速的编译器或Xcode错误。
我做了一个小的解决方法。 不要以为这是一个最好的解决scheme,直到苹果解决这个问题,但现在没有任何问题的工作。

只需重写UITextField类:

 class PBTextField : UITextField { var keyboardShowDate = NSDate() required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) self.initialisation() } override init(frame: CGRect) { super.init(frame: frame) self.initialisation() } func initialisation() { self.addTarget(self, action: "editingDidBegin:", forControlEvents: UIControlEvents.EditingDidBegin) self.addTarget(self, action: "editingDidEnd:", forControlEvents: UIControlEvents.EditingDidEnd) } // MARK: Delegates func editingDidBegin(sender: AnyObject) { self.becomeFirstResponder() self.keyboardShowDate = NSDate() } func editingDidEnd(sender: AnyObject) { if(fabs(self.keyboardShowDate.timeIntervalSinceNow) <= 0.5) { self.becomeFirstResponder() dispatch_after(0.1, block: { () -> Void in self.becomeFirstResponder() }) } } } 

派遣方式:

 typealias dispatch_cancelable_block_t = ((cancel: Bool) -> Void) func dispatch_async(block: dispatch_block_t, background: Bool = true) -> dispatch_cancelable_block_t? { return dispatch_after(0, block: block, background: background) } func dispatch_after(delay: NSTimeInterval = 0, block: dispatch_block_t, background: Bool = false) -> dispatch_cancelable_block_t? { var cancelableBlock : dispatch_cancelable_block_t? let delayBlock : dispatch_cancelable_block_t = { (cancel) -> Void in if(cancel == false) { if(background) { block() } else { dispatch_async(dispatch_get_main_queue(), block) } } cancelableBlock = nil }; cancelableBlock = delayBlock dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(delay * NSTimeInterval(NSEC_PER_SEC))), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { if let cb = cancelableBlock { cb(cancel: false) } }) return cancelableBlock } func cancel_block(block: dispatch_cancelable_block_t) { block(cancel: true) } 

希望这会有助于某人。
如果你有更好的解决scheme,请在评论中告诉我。
谢谢
Giorgi的

还要确保你没有搞乱你的yourTextField.inputView

添加[textField canBecomeFirstresponder];