我们可以将UITextField的这个属性设置为"Send","Search","Go"等:
@property(nonatomic) UIReturnKeyType returnKeyType
Run Code Online (Sandbox Code Playgroud)
但是在使用UITextField时设置它根本不会改变.
我想要这种行为:当UITextField为空时,让returnKeyType为"Return",否则让returnKeyType为"Send".
我有4个uitextfields,可以识别它们是空的还是完整的.如果完成,则将其返回键类型更改为GO,否则为默认值.问题是键盘没有改变键类型,即使我使用reloadinputview
- (void)viewDidLoad
{
[super viewDidLoad];
_fieldsArray = @[_nameField, _passwordField, _emailField, _usernameField];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSRange textFieldRange = NSMakeRange(0, [textField.text length]);
//NSLog(@"%d", !(NSEqualRanges(range, textFieldRange) && [string length] == 0));
[self signUpFieldsAreValid:(!(NSEqualRanges(range, textFieldRange) && [string length] == 0) && [self validateSignUpFields:textField])];
[textField reloadInputViews];
return YES;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{
[self signUpFieldsAreValid:NO];
[textField reloadInputViews];
return YES;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
for (UITextField *aTextField in _fieldsArray) {
if (aTextField.isFirstResponder) {
aTextField.layer.borderWidth = 0.f;
aTextField.layer.borderColor = nil;
} …Run Code Online (Sandbox Code Playgroud)