use*_*136 3 iphone objective-c uibutton uitextfield uitextfielddelegate
在我的应用程序中,我在SignIn页面中有两个文本字段(用户名和密码)和UI按钮.
如果textfield(密码)有文本我想启用按钮.
我在viewDidLoad()中创建了具有以下属性的UITextfield和UIbutton.
self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;
[self.btnLogin setEnabled:NO];
Run Code Online (Sandbox Code Playgroud)
我试过下面的代码,没有运气.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == self.txtFieldPassword) {
// checking for any whitespaces
if(([string rangeOfString:@" "].location != NSNotFound))
{
return NO;
}
if( [[self.txtFieldPassword.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] )
self.btnLogin.enabled = YES;
else
self.btnLogin.enabled = NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除了UitextField中的以下行,则表明它已经有效.
self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;
Run Code Online (Sandbox Code Playgroud)
我想启用具有上述属性的按钮.怎么实现呢?
谢谢!!!
Bal*_*Mca 12
你可以检查string.length == 0和range.length> 0; 这表示删除.但是你真正想要的只是进行挂起修改,然后检查你是否还有一个非空字符串.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *testString = [textField.text stringByReplacingCharactersInRange:range withString:string];
testString = [testString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if( testString.length)
myButton.enabled = YES;
else
myButton.enabled = NO;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{
_done_button.enabled = NO;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
你可以用self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing来实现这个目的.属性.它对我来说很好,有一个美好的一天
| 归档时间: |
|
| 查看次数: |
3354 次 |
| 最近记录: |