2016-04-05 9 views
2

私のラベルのテキストを変更できるようにするには、「編集」ボタンが必要です。ボタンでラベルを編集してキーボードをクリックしてテキストを入力する方法を教えてください。

enter image description here

私は新しいテキストを書くためにキーボードを使用する必要があります。 label.text = "new label"でボタンを作成する方法はわかっていますが、キーボードでラベルテキストを変更する可能性をユーザに与えたいと考えています。 私はテキストビューで試しましたが、テキストを変更するために私たちをテキストビューにリダイレクトするボタンを作成することはできません(自分でもインターネット上でも解決策が見つかりませんでした)。

私はあなたのストーリーボード・ソリューションを持っているので、もしそれが完璧になるが、私はあまりにもObjective-Cのとスウィフトを理解するであろうストーリーボードで多くの仕事:)

ありがとうございます!

編集:Henrique da Costaさん、ありがとうございました。解決策はボタンアクションに[TextView becomeFirstResponder];を入れることです。 SwiftのTextView.becomeFirstResponder()

+0

overrideあなたはボタンを押すと、瞬時にoverride方法

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool 

、ユーザーがキーボード上returnに当たったときのラベルを変更するためのラベルテキストを変更するには?テキストビューは最初のレスポンダーになり、編集の準備が整います。編集ボタンは保存ボタンになります。テキストビューで編集し、保存ボタンを押します。 textviewのテキストをラベルに渡します。これはあなたの要件を満たしますか? – MudOnTire

答えて

4

プレースホルダ「ユーザー情報」とユーザーの操作なし有効にしてテキストフィールド持つことができます。

Image

をし、その後、あなたのeditButtonために、あなたが

できる関数の内部で作成し、行動することができます
textField.view.userInteractionEnabled = true 
textField.becomeFirstResponder() 

これはユーザーが情報を入力するためのキーボードを開きます。

+0

複数の情報が必要ですが、textView.becomeFirstResponderを試してみましょう! 編集:ボタンの '[TextView becomeFirstResponder];で動作します。どうもありがとう ! – OxyFlax

+0

問題ありません:) –

1

UILabelの代わりにUITextFieldを使用して、enabledプロパティを切り替えることができます。

+0

私はいくつかの行が必要なので、それは私の仕事に合わないが、これもうまくいくだろう!ありがとう – OxyFlax

0

UITextFieldStoryBoardに追加し、Controllerクラスに配線することができます。これは、キーボードを開き、テキストで入力を受け取るためにあなたのコントローラーを助ける

yourTextField.becomeFirstResponder() 

を示すようになりましたEditボタンアクションを変更します。これで、UITextFieldを表示または非表示にすることができます。それが隠されている場合は、ラベルを各文字で瞬時に更新することができ、表示されている場合は、ユーザーがreturnに達するとラベルテキストを変更できます。 viewDidLoadUITextFieldデリゲートのプロパティを受け取り、UITextFieldDelegateとコントローラクラスを拡張するために今すぐController設定viewDidLoad

yourTextField.hidden = true 

UITextFieldを非表示にするhiddenプロパティを使用します。

yourTextField.delegate = self 

func textFieldShouldReturn(textField: UITextField) -> Bool 
+0

私はいくつかの線が必要なので、それは私の仕事に合わないが、これもうまくいくだろう!複数の行をUILabelに追加するためにありがとう – OxyFlax

+0

、 'yourLabel.numberOfLines = 0'を設定してください – Mathews

+0

ええ、それはラベルではなくテキストフィールドです。 – OxyFlax

関連する問題