在'完成'按钮上添加验证方法添加到UITextField输入法
我想在UITextField中输入时添加'完成'UIBarButtonItem被按下,但由于其目标设置为UITextField我正在编辑,我无法调用自定义验证方法。有没有人有想法如何解决这个问题? 我试图通过用validateInput(自定义方法)替换“resignFirstReponder”来添加自定义方法,但它会引发异常错误,因为目标textField没有调用的方法,我推测。如果我将目标设置为'self',那么它不会将'done'按钮添加到UITextField。请帮忙。在'完成'按钮上添加验证方法添加到UITextField输入法
对不起,我没有把整个代码。下面是围绕这个功能全码:
- (void) addDoneButton: (UITextField *) textField
{
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:textField action:@selector(resignFirstResponder)];
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
toolbar.items = [NSArray arrayWithObject:barButton];
textField.inputAccessoryView = toolbar;
}
- (void) viewDidLoad{
[super viewDidLoad];
[self addDoneButton:txtBox];
}
只需设定行动的barButtom
属性:
[barButton setAction:@selector(myValidationMetod)];
使用对方法内的文本框任何验证。
目标应该是我自我猜测和行动:@selector(yourCustomMethod)。
-(void)yourCustomMethod
{
if(textField.length>0)
{
NSLog(@"textField Validated");
}
}
谢谢。我将需要使我的自定义方法来验证输入。这很有帮助。 – Ryan 2013-04-07 03:34:14
什么你需要做的就是完成按钮呼叫控制器,那么这将是负责验证text
,并呼吁resignFirstResponder
上的方法。
这将是这样的
UIBarButtonItem *barButton =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(doneTapped)];
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
toolbar.items = @[ barButton ];
self.textField.inputAccessoryView = toolbar;
现在你需要实现doneTapped
方法
- (void)doneTapped
{
[self.textField resignFirstResponder];
NSString *text = self.textField.text;
// validate text
}
谢谢。这很有帮助,但我没有正确地问我的问题。所以我更新了我的代码以提供更多背景。如果我设置目标'self','done'按钮不起作用...我想我需要将目标设置为UITextField,我想要'完成'按钮被连接到。 – Ryan 2013-04-07 03:32:54
你试过这个吗?目标需要设置为将处理选择器的对象。在这种情况下,viewController(self)是处理操作的对象,而不是我试过的textField – 2013-04-07 10:02:24
,但是当我将目标更改为'self'时,'done'按钮不起作用。我想用'完成'按钮关闭键盘。我认为这就是为什么当我将目标设置为“自我”时,按钮不起作用。不应该将目标设置为UITextField视图,因为它仅在键盘出现时出现? – Ryan 2013-04-07 12:55:37
嘿,这是不是你做的方式,请发表你们需要的UI和您想要的功能。你的代码有很多错误。 – satheeshwaran 2013-04-06 16:49:45
谢谢。我明白你的意思。我编辑了代码。这个可以吗? – Ryan 2013-04-07 03:31:05