【发布时间】:2014-08-25 19:04:22
【问题描述】:
@Luda's answer is a great answer,但是当我需要将它用于多个文本字段时我被卡住了,所以我将其编辑如下:
首先,我为每个文本字段获取 IBOutlets,例如:textField1、textField2
然后我将代码编辑为
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad:)],
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(sendToServer:)],
nil];
[numberToolbar sizeToFit];
textField1.inputAccessoryView = numberToolbar;
textField2.inputAccessoryView = numberToolbar;
}
-(void)cancelNumberPad:(UITextField *)textField
{
//here I use if/else to determine which textField was tapped
if(textField == self.textField1)
{
//do some stuff
}else //...
}
-(void) sendToServer:(UITextField *)textField
{
//here I use if/else to determine which textField was tapped
if(textField == self.textField1)
{
//do some stuff
}else //...
}
请注意,我必须将冒号 : 添加到 @selector,例如@selector(sendToServer:) 这样就可以将正确的 TextField 作为参数传递。
但是
它不工作。测试失败:if(textField == self.textField1)。那么有人知道如何正确执行此操作吗?
问题是:我如何知道正在编辑哪个文本字段?
【问题讨论】:
-
我希望得到比stackoverflow.com/questions/1823317/… 更直接的答案。直接指的是选择器的参数。
标签: ios iphone keyboard xcode5 user-input