2016-05-28 4 views
1

iOSのキーボードを開き、キーボード自体とやりとりすることなくプログラムでボタンを押す方法があるのだろうかと思っていました。プログラマチックにキーボードのボタンを押す

+0

どのボタンを押してみようとしていますか?その方法を呼び出す方法があります。たとえば、キーボード変更ボタンを「押す」ようにして絵文字キーボードに切り替える場合、次のキーボードをプログラムで呼び出す方法があります。 –

+0

@AlbertRenshawあなたが言及している方法は何ですか? – adrian1kat

+0

@ adrian1kat 'setKeyboardType:' –

答えて

2

はい、方法があります。実際にはいくつかの方法がありますが、それらはすべて文書化されておらず、本番環境では使用しないでください。

タップを生成するとは、UIEvent(実際にはいくつか)を生成してUIApplication.sendEvent(_:)に渡すことを意味します。

は残念ながら、UIEvent内部構造が文書化されていませんが、一部の人々はすでにそれを点検している、あなたは、イベント(例えばhttps://github.com/n00neimp0rtant/ControlFreak)を合成するためのツールをグーグルことができます。しかし、あなたはまた、それはUIのテストは、以前に使用していたものだ(タップを生成する(例えば、these generated headersを参照)内部UIAutomationのAPIを使用することができます

iOS 9 UIEventを参照)UIEventUITouchの内部構造は、iOSのバージョン間で変更できることに注意してくださいこのAPIは公開されておらず、アプリがXcodeに接続されている場合にのみアプリに読み込まれます。私はこのプライベートフレームワークがiOS 9上でどのように見えるのかわかりません。

1

いいえありません。レスポンダーチェーンを介してイベントをアプリケーションに送信できますが、キーボードはセキュリティ上の理由からタッチでしかアクセスできません。

0

私はあなたがなぜ必要なのか分かりません。もしあなたが持っていれば、UITextFieldと言うと、ちょうど、

textField.text += "a" 

これは何でも使えます。キーボードのボタンをタップする必要はありません

+1

文字を入力するだけでなく、キーボードには多くのボタンがあります。たとえば、帽子のキー、絵文字のキーなど –

0
override func viewDidLoad() { 
    super.viewDidLoad() 


    textInput.becomeFirstResponder() 

} 

override func viewDidAppear(animated: Bool) { 

    textInput.text = textInput.text ?? "" + "" 

} 
+0

これは私のために働く。 –

関連する問題