web-dev-qa-db-ja.com

UITextFieldおよびUITextView iphoneアプリを使用せずにキーボードを表示することは可能ですか?

私はiPhoneメッセージベースのアプリで働いています。

inputAccessoryViewUITextViewを使用せずに、キーボードUITextFieldのあるキーボードをキーボードに表示したい。これは可能ですか?誰か助けてください。

前もって感謝します。あなたの助けを楽しみにしています。ありがとう。

編集:

UITextField/UITextViewとコントロールをUITextView/UITextFieldに含めたくないので。キーボードにinputAccessoryViewを追加しますUITextView。ユーザーがキーボードのUITextviewをタッチすると、inputView実際のプロセスが続行されます。

33
Gopinath

何らかの理由でUITextField/UITextViewなしでキーボードを表示したい場合は、UIKeyInputプロトコルとcanBecomeFirstResponder 方法。

24

ここでそれを行うためのドキュメントを参照してください:

シンプルなテキスト入力

必要なのは、ビューにUIKeyInputを実装させ、ビューがタッチされたときに[inputView becomeFirstResponder]を呼び出すことだけです。ビューもcanBecomeFirstResponderを実装してYESを返す必要があります。

これを行うiOSドキュメントのサンプルコード

18
Kostub Deshmukh

あなたはこれらの他のSO投稿で答えを試すことができます:

これを試すこともできます:

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];

Xcodeシミュレーター:

ソフトウェアキーボードがオフになっているため、キーボードが表示されない場合があります。ハードウェア->キーボード->キーボードを切り替えます????

1
eonist

ビュー、ラベル、または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()

データソースからピッカーデータを設定します(コンパイラーはuに強制します)

デリゲートからデータピッカーイベントを取得する

0
alegelos

ボタンを押すだけでテキストフィールドでキーボードを呼び出すことができる小さなユーティリティファイルを作成しました。

https://github.com/havocked/TZKeyboardPop

0
Mindhavok