Можно ли показывать клавиатуру без использования приложения UITextField и UITextView iphone?

Я работаю в приложении для обмена сообщениями на iPhone.

Я хочу показать клавиатуру с клавиатурой inputAccessoryView в клавиатуре без использования UITextView а также UITextField, Это возможно сделать? Пожалуйста, помогите мне в этом.

Заранее спасибо. Ждем вашей помощи. Благодарю.

РЕДАКТИРОВАТЬ:

Потому что я не хочу UITextField/UITextView и контроль, чтобы быть в UITextView/UITextField, Я собираюсь добавить inputAccessoryView на клавиатуре есть UITextView, когда пользователь касается UITextview в клавиатуре inputView фактический процесс будет продолжен.

5 ответов

Для тех, кто хочет показать клавиатуру без UITextField/UITextView по некоторым причинам может легко расширить некоторые представления, которые требуют ввода текста путем реализации UIKeyInput протокол и canBecomeFirstResponder метод.

Смотрите документацию для этого здесь:

Простой ввод текста

Все, что вам нужно сделать, это реализовать ваше представление UIKeyInput и позвонить [inputView becomeFirstResponder] когда вид коснулся. Ваше мнение также необходимо реализовать canBecomeFirstResponder и верните ДА.

Пример кода из документации iOS, которая делает это.

Сделайте View, Label или что-нибудь еще, чтобы соответствовать UIKeyInput. В этом случае UIView

Подкласс a UIView:

import UIKit

class KeyInputView: UIView {
   var _inputView: UIView?

   override var canBecomeFirstResponder: Bool { return true }
   override var canResignFirstResponder: Bool { return true }

   override var inputView: UIView? {
       set { _inputView = newValue }
       get { return _inputView }
   }
}

// MARK: - UIKeyInput
//Modify if need more functionality
extension KeyInputView: UIKeyInput {
    var hasText: Bool { return false }
    func insertText(_ text: String) {}
    func deleteBackward() {}
}

Настройте представление, в данном случае с помощью средства выбора (в viewDidLoad или где-либо еще)

let languangePicker = UIPickerView()
languangePicker.dataSource = self
languangePicker.delegate = self
keyInputView.inputView = languangePicker

Показывать:

keyInputView.becomeFirstResponder()

Прятаться:

keyInputView.resignFirstResponder()

Установить данные средства выбора из источника данных (компилятор заставит вас это сделать)

Получение событий средства выбора данных от делегата

В симуляторе xcode:

Иногда клавиатура не отображается, потому что программная клавиатура выключена. Перейти к оборудованию -> Клавиатура -> Переключить клавиатуру

Вы можете попробовать свой ответ здесь:

использовать-в-систему-клавиатуру-без а-UITextView

клавиатура iphone без просмотра текста

И вы можете попробовать это тоже.

    UIKeyboard *keyboard = [[[UIKeyboard alloc] initWithFrame: CGRectMake(0.0f,          contentRect.size.height - 216.0f, contentRect.size.width, 216.0f)] autorelease];
    [keyboard setReturnKeyEnabled:NO];
    [keyboard setTapDelegate:editingTextView];
    [inputView addSubview:keyboard];

Вот еще один вариант, если это может вам помочь.

Я сделал небольшой служебный файл, который может вызывать клавиатуру с текстовым полем одним нажатием кнопки!

https://github.com/havocked/TZKeyboardPop

Другие вопросы по тегам