我有一个非常简单的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