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的主要内容,如果未能解决你的问题,请参考以下文章

UITextField 和有趣的程序

iOS UITextField光标/文字起始位置

iOS开发中设置UITextField的占位文字的颜色,和光标的颜色

UIKit框架(18)UIButton和UITextField

UITextField 光标和键盘问题

shouldChangeCharactersInRange 影响所有 UITextField 的