UITextField 和 UIButton
Posted
技术标签:
【中文标题】UITextField 和 UIButton【英文标题】:UITextField and UIButton 【发布时间】:2013-03-20 02:39:16 【问题描述】:在我的视图中有一个 textField 和一个按钮,如果 文本字段为空我不想让用户点击按钮。 当用户在文本字段中输入内容时,按钮将 可点击。 我怎样才能做到这一点?谢谢。
【问题讨论】:
【参考方案1】:对于你的 UITextField,你可以设置:
[textField addTarget:self action:@selector(editing:) forControlEvents:UIControlEventAllEditingEvents];
那么在你的编辑中:有:
-(void)editing:(UITextField *)sender
myButton.enabled = ![sender.text isEqualToString:@""];
【讨论】:
【参考方案2】:监听文本字段的变化。随着文本的变化,根据是否有文本更新按钮的enabled
属性。当然你还需要在开头设置按钮的状态。
// Setup the text field change listener (this can be done in IB if appropriate)
// Put this in viewDidLoad if not using IB.
UITextField *myTextField = ... // a reference to the text field
[myTextField addTarget:self action:@selector(textFieldChangedAction:) forControlEvents:UIControlEventEditingChanged];
// Initialize the button's state (put this in viewDidLoad)
myButton.enabled = myTextField.text.length > 0;
// The method called as the text changes in the text field
- (void)textFieldChangedAction:(UITextField *)sender
myButton.enabled = sender.text.length > 0;
【讨论】:
【参考方案3】:如果需要,您可以通过将按钮的 alpha 值设置为 0 来“隐藏”按钮,并且当文本字段至少有一个字符长时,然后将按钮的 alpha 值设置为 1 以“显示”按钮。我认为这在概念上很容易做到,并且对用户来说非常形象。
【讨论】:
【参考方案4】:将 textfield.delegate 设置为 self 然后在委托中是 textfielddidbeginediting ( 检查文本字段是否为@"" 然后禁用按钮
其他 启用按钮 )
还有一个。代表你可以使用
Textdidchangecharacters
并且在 viewdidload 中按钮的第一个状态应该被禁用
【讨论】:
以上是关于UITextField 和 UIButton的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发中设置UITextField的占位文字的颜色,和光标的颜色