ios - 在@selector 方法中传递参数

标签 ios objective-c arguments selector

我在 @selector 方法中传递参数时出错。

这是我的代码:

-(void) accessoryView : (UITextField*) textField
{

    UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    numberToolbar.barStyle = UIBarStyleBlackTranslucent;
    numberToolbar.items = @[[[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(doneWithNumberPad:textField:)]];


    [numberToolbar sizeToFit];
    textField.inputAccessoryView = numberToolbar;
}

-(void)doneWithNumberPad : (UITextField*) txt : (id) sender {

}

最佳答案

您可以为您的文本字段获取引用变量的帮助。将全局属性声明为文本字段。保留当前事件文本字段的引用,并根据您的要求以每种方法访问它。

UITextField *activeTextField;

// UITextField Delegates
-(void)textFieldDidBeginEditing:(UITextField *)textField {     
     activeTextField = textField;
}

您可以在您的类(class)中的任何地方使用这个 activeTextField 属性。

您需要将您的类定义为 UITextField 的委托(delegate)。

self.yourTextField.delegate = self

关于ios - 在@selector 方法中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45253614/

相关文章:

objective-c - 在Objective-C中找到另一个不区分大小写的字符串

ios - 您可以在共享的全局类中跟踪用户的位置吗?

ios - Xcode Playground 不显示在右侧

iphone: performSelector: withObject: afterDelay: 不适用于后台线程?

c++ - 将函数作为参数传递 CPP

ruby - 我应该在 Ruby 中验证方法参数吗?

python - Pygame 延迟参数

iphone - 我如何确定我的应用程序何时将在后台终止?

ios - 排除 pod iOS 的特定资源

objective-c - 从 Xcode 6.4 中构建提交应用程序