【问题标题】:How can I pass a parameter to a selector?如何将参数传递给选择器?
【发布时间】:2010-12-07 09:03:39
【问题描述】:
我有一个 NSSearchField:
[searchField setAction:@selector(doSearchWithQuery:)];
这是我的 doSearchQuery:
-(void)doSearchWithQuery:(NSString*)query{
如何将搜索字段的内容传递给 doSearchWithQuery?
【问题讨论】:
标签:
objective-c
cocoa
parameters
nssearchfield
【解决方案1】:
您无法完全按照您的描述进行操作。选择器不做任何事情或接受任何参数——它只是要发送的消息的名称。您只能在实际发送消息时传递参数。但是,控件总是将自己作为参数传递给它们的操作,因此您需要一个包装器方法,如下所示:
- (void)doSearchFromSearchField:(NSSearchField *)sender {
[self doSearchWithQuery:[sender stringValue]];
}
并将其设置为操作。