2010-12-08 6 views
10

私は唯一のiOSNSButtonを押してキーボードを表示する方法は?

タッチテキストフィールド、検索バー、TextViewの上のキーボードを表示するにはいくつかの方法を知っている.....

は、タッチを経由して、それが可能なキーボードを表示するボタンです?

私は、この方法で、ボタンが無意味であるか、名前を変更することができる場合、ボタンのタイトルを設定することができます。

は、上記情報に基づいて、みんな〜

+0

基本的には、最初のレスポンダになり、UITextTraitsを実装するコントロールを作成する必要があります。コントロールが最初のレスポンダになると、キーボードはまだ表示されていない場合に表示されます。 –

答えて

14

はあなたのビューにUITextFieldを追加し、UITextFieldからYESに隠されたattrributeを設定し、その可能性[myTextfield becomeFirstResponder]; を呼び出す必要があります - ので、ユーザーがテキストフィールドを参照することはありません。キーボードの入力が完了したら、UITextFieldremoveFromSuperviewで削除できます。

少し汚れているかもしれませんが、私が頻繁に使用した解決策です。 SDKが別の可能性を提供しているのだろうかと思う。

+0

私はわかりません...ボタンにテキストフィールドを追加して隠すことができるかもしれません –

+0

これはあなたのビューのどこか他の場所にもあります。重要なのは、キーボードが表示されるよりも、ボタンがクリックされたときにfirstFirstResponderを呼び出すことだけです。ボタンテキストを動的に変更することができます(つまり、UITextFieldDelegateプロトコルを使用して)。 – Constantin

+0

UIKeyInputプロトコルを使用すると、以下のより良い解決策があります。 – wzbozon

3

ボタンの名前を入力できるUITextFieldのような入力方法が必要です。あなたがしたい場合は、TextFieldを示し(これはデフォルトでは非表示になっている)、それ行って、ファーストレスポンダになりUIButtonを作成することができます。

textField.hidden = NO; 
[textField becomeFirstResponder]; 

あなたがあなたのテキストフィールドにしたい何かを入力すると、あなたはそれを作ることができますキーボードが消え、テキストフィールドが非表示になり、UIButtonテキストが入力されたテキストに変更されます。

-(BOOL)textFieldShouldReturn:(UITextField*)textField; { 
textField.hidden = YES; 
[textField resignFirstResponder]; 
[yourButton setTitle:textField.text forState:UIControlStateNormal]; 
} 
+0

テキストフィールドを経由したくない場合はどうすればいいですか?hidden =いいえ;これは、ユーザーがテキストフィールドを表示することを意味します。これを隠すための解決策はありませんか? –

+0

テキストフィールドを境界線を変更して見えにくくすることができます。 –

5

UIKeyInput protocolのドキュメントには、次のことを言う:

UIResponderのサブクラスでは、単純なテキスト入力を実装するために、このプロトコルを採用することができます。このサブクラスのインスタンスが最初のレスポンダである場合、システムキーボードが表示されます。

このプロトコルを採用するクラスで使用可能なキーボードと言語のごく一部だけが利用可能です。

これは、隠しテキストフィールド/ビューよりも優れたニーズに役立ちます。

+0

完璧なソリューション。それは動作し、クラスにプロトコルを追加するだけで済みます。 @interface UIBubbleTableViewCell:UITableViewCell wzbozon

+1

素晴らしいです。ちょっと助けてください: "canBecomeFirstResponder"をオーバーライドし、YESを返してこれを動作させ、insertText、hasText、deleteBackwardを実装するクラスが必要です。 – narco

関連する問題