Подтвердить что ты не робот

UIKeyboard не появляется при нажатии на UITextField

This is the Signup VC ,as Tapping pops the white space Not the KeyBoardThis is the login VC ,as Tapping pops the white space Not the KeyBoard

У меня была странная проблема, так как все остальное работает нормально. Внезапно, когда я скомпилировал свое приложение и получил эту проблему, когда я нажал на пробел UITextField, появляется, но клавиатура не видна, и я ничего не могу вставить.

4b9b3361

Ответ 1

Далее будет исправлена ​​проблема с клавиатурой

Симулятор → Оборудование → Клавиатура → Toggle Software Keyboard должна решить эту проблему.

![Simulator->Hardware->Keyboard->Toggle Software Keyboard]

Ответ 2

Попробуйте следующее:

Перейти:

iOS Simulator -> Hardware -> Keyboard 

И снимите флажок

'Connect Hardware Keyboard'

Или просто выполните: ⇧ shift + ⌘ Command + K

Сохранить кодирование.........:)

Ответ 4

У меня такая же проблема, но только на симуляторе 5s. И я попытался перейти к содержанию и настройкам симулятора → reset. Это фактически решило проблему.

Ответ 5

в этом отношении проверьте две вещи

1- userInteractionEnabled=true

2- textFielfd.editable = YES;

Надеюсь, это решит вашу проблему.

Ответ 6

Проверьте, отображается ли розетка, а делегат установлен на контроллер? Также проверьте, установлен ли контроллер <UITextFieldDelegate>. Отправить снимок экрана инспектора файлов, возможно?

Ответ 7

проверить, если в какой-то момент вы делаете что-то вроде

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

или, возможно, вы назначаете первого ответчика другому элементу управления.

Надеюсь, что это поможет

Ответ 8

У меня была аналогичная проблема, но на самом устройстве.
Я поговорил с технической поддержкой разработчика Apple (Apple DTS), и они сказали мне, что это быстрый компилятор или ошибка Xcode.
Я сделал небольшое обходное решение. Не думайте, что это лучшее решение, пока яблоко не решит эту проблему, но теперь это работает без проблем.

Просто переопределите класс 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)
}

Надеюсь, это поможет кому-то. Если у вас есть лучшее решение, пожалуйста, дайте мне знать в комментариях.
Благодаря
Гиорги

Ответ 9

Также убедитесь, что вы не возитесь с yourTextField.inputView

Ответ 10

Добавить [textField canBecomeFirstresponder];