我有一个非常简单的NSSearchField设置。我希望每当用户键入一个字符时,如果在较短的时间内,用户不再输入任何内容,它将自动调用action

我将NSSearchField's action从界面构建器连接到其他一些对象中的IBAction

我面临的问题:由于某种原因,当用户单击关闭按钮或按退出键以清除搜索字段时,action会触发两次。有谁知道如何避免action两次被打通?

#import "ViewController.h"

@implementation ViewController

- (IBAction) searchingStarts:(id)sender
{
    printf("action is triggered\n");
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}


- (void)setRepresentedObject:(id)representedObject {
    [super setRepresentedObject:representedObject];
    // Update the view, if already loaded.
}

@end


您可以简单地将NSSearchField拖到情节提要中并将其action链接到searchingStarts

这是我的设置:https://github.com/YLiLarry/nssearchfield-bug

最佳答案

我认为您应该使用委托来避免这种情况的发生。

- (void)searchFieldDidEndSearching:(NSSearchField *)sender

10-08 08:36
查看更多