如何在按钮单击时显示标签并显示键盘以键入文本?

时间:2016-04-05 11:24:07

标签: ios objective-c swift storyboard

我想要一个"编辑"按钮,以便能够更改我的标签文本。

enter image description here

我需要使用键盘来编写新文本。我的意思是我知道如何使用label.text = "new label"创建一个按钮,但我希​​望用户可以使用键盘更改标签文本。 我尝试了一个文本视图,但我们不能(我没有在我自己和互联网上找到任何解决方案)创建一个按钮,可以将我们重定向到文本视图以更改文本。

我在故事板上工作很多,所以如果你有一个故事板解决方案,那将是完美的,但我也会理解Objective-C和Swift:)

谢谢!

编辑:谢谢Henrique da Costa,解决方法是将[TextView becomeFirstResponder];放在按钮操作中。斯威夫特的TextView.becomeFirstResponder()

3 个答案:

答案 0 :(得分:4)

你可以拥有一个带有placeHolder"用户信息"的textField。并且未启用用户交互:

Image

然后你可以为editButton和你可以

的函数内部创建和动作
textField.view.userInteractionEnabled = true
textField.becomeFirstResponder()

这将打开键盘,供用户输入他的信息。

答案 1 :(得分:1)

您可以使用UITextField代替UILabel,然后切换enabled属性。

答案 2 :(得分:0)

您可以在UITextField中添加StoryBoard并将其连接到Controller课程。现在修改Edit按钮操作,如图所示

yourTextField.becomeFirstResponder()

这将打开键盘并帮助您的控制器接收输入的文本。现在,您可以选择显示或隐藏UITextField。如果它是隐藏的,您可以立即用每个字符更新标签,如果显示,您可以在用户点击return左右时修改标签文本。使用hidden属性隐藏UITextField

中的viewDidLoad
yourTextField.hidden = true

现在设置Controller以接收UITextField中的viewDidLoad委托属性,并使用UITextFieldDelegate扩展控制器类。

yourTextField.delegate = self

即时修改标签文本override方法

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

并在用户点击键盘return

时点击override时修改标签
func textFieldShouldReturn(textField: UITextField) -> Bool