我想要一个"编辑"按钮,以便能够更改我的标签文本。
我需要使用键盘来编写新文本。我的意思是我知道如何使用label.text = "new label"
创建一个按钮,但我希望用户可以使用键盘更改标签文本。
我尝试了一个文本视图,但我们不能(我没有在我自己和互联网上找到任何解决方案)创建一个按钮,可以将我们重定向到文本视图以更改文本。
我在故事板上工作很多,所以如果你有一个故事板解决方案,那将是完美的,但我也会理解Objective-C和Swift:)
谢谢!
编辑:谢谢Henrique da Costa,解决方法是将[TextView becomeFirstResponder];
放在按钮操作中。斯威夫特的TextView.becomeFirstResponder()
。
答案 0 :(得分:4)
你可以拥有一个带有placeHolder"用户信息"的textField。并且未启用用户交互:
然后你可以为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