如何将参数传递给选择器?

时间:2010-12-07 00:55:39

标签: objective-c cocoa parameters nssearchfield

我有一个NSSearchField:

[searchField setAction:@selector(doSearchWithQuery:)];

这是我的doSearchQuery:

-(void)doSearchWithQuery:(NSString*)query{

如何将搜索字段的内容传递给doSearchWithQuery?

1 个答案:

答案 0 :(得分:4)

你无法完全按照自己的描述去做。选择器不执行任何操作或接受任何参数 - 它只是要发送的消息的名称。您只能在实际发送消息时传递参数。但是,控件总是将自己作为参数传递给自己的行为,所以你需要的是这些行中的包装器方法:

- (void)doSearchFromSearchField:(NSSearchField *)sender {
    [self doSearchWithQuery:[sender stringValue]];
}

并将其设置为动作。