在 NSTokenField 中,似乎在删除令牌时不存在委托方法。
我试过制作包装器代表:
#import "tokenDelegate.h"
@implementation tokenDelegate
@synthesize token,owner;
-(id)initWithWrappedToken:(id)token1 owner:(id<TokenWrapperDelegate>)owner1
{
self.owner = owner1;
self.token = token1;
return self;
}
-(void)dealloc {
[owner tokenWasDeleted:self.token];
self.token = nil;
[super dealloc];
}
@end
对于所有者,我尝试过:
- (NSString *)tokenField:(NSTokenField *)tokenField editingStringForRepresentedObject:(id)representedObject;
{
del = [[tokenDelegate alloc] initWithWrappedToken:nil owner:self];
del.token = representedObject;
[del release];
return [representedObject description];
}
-(void)tokenWasDeleted:(id)token
{
NSLog(@"token %@",token);
}
问题是:
在编辑“tokenWasDeleted”时正在调用。(那也行)。但是当我选择一个令牌然后直接删除“tokenWasDeleted”时不会调用。
任何人都可以帮助如何处理这个问题,以便我可以获得被删除的令牌的索引。
谢谢,尼拉姆维尔马