Jac*_*cob 8 cocoa objective-c nstokenfield
Apple已经方便地创建了一个回调方法,允许您检查添加到NSTokenField的新令牌是否有效:
- (NSArray *)tokenField:(NSTokenField *)tokenField shouldAddObjects:(NSArray *)newTokens atIndex:(NSUInteger)index
Run Code Online (Sandbox Code Playgroud)
我已经实现了这一点,事实证明它除了在一个案例中之外效果很好.如果用户开始键入令牌但尚未完成键入令牌,并且用户按下TAB键,则不会调用验证方法.
这意味着我能够确保输入的所有令牌都是有效的,除非用户计算出来,他们可以按Tab键绕过验证.
有谁知道处理这种情况的正确方法是什么?
我试了一会儿,当按下Tab键时,我发现令牌字段调用了控件:isValidObject:NSControlTextEditingDelegate协议.所以你可以实现一个委托方法,如
- (BOOL)control:(NSControl *)control isValidObject:(id)object
{
NSLog(@"control:%@", control);
NSLog(@"object:%@", object);
return NO;
}
Run Code Online (Sandbox Code Playgroud)
'object'参数是不完整令牌的内容.如果方法返回NO,则不会将令牌插入有效令牌数组.
| 归档时间: |
|
| 查看次数: |
920 次 |
| 最近记录: |