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

发布于 2024-10-06 16:23:15 字数 247 浏览 1 评论 0原文

我有一个 NSSearchField:

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

这是我的 doSearchQuery:

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

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

I have an NSSearchField:

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

Here is my doSearchQuery:

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

How can I pass the contents of my searchfield into doSearchWithQuery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄居人 2024-10-13 16:23:15

你不能完全按照你所描述的那样做。选择器不执行任何操作或接受任何参数 - 它只是要发送的消息的名称。您只能在实际发送消息时传递参数。但是,控件始终将自身作为其操作的参数传递,因此您需要的是一个遵循以下原则的包装方法:

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

并将其设置为操作。

You can't do exactly what you're describing. A selector doesn't do anything or accept any parameters — it's just the name of the message to send. You can only pass arguments when you actually send a message. However, controls always pass themselves as an argument to their actions, so what you need is a wrapper method along these lines:

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

And set that as the action.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文