所以我想在我的应用程序中为每个用户实现家长控制,但我需要一种获取所有用户并将其添加到NSTableView的方法.这些用户应该与登录窗口显示的相同,不包括其他...一个和系统用户.
关于如何做到这一点的任何想法?此外,我希望能够在该表视图上进行选择,当然也可以更改显示的设置.
Dav*_*ong 11
我是这样做的:
#import <CoreServices/CoreServices.h>
#import <Collaboration/Collaboration.h>
CSIdentityAuthorityRef defaultAuthority = CSGetLocalIdentityAuthority();
CSIdentityClass identityClass = kCSIdentityClassUser;
CSIdentityQueryRef query = CSIdentityQueryCreate(NULL, identityClass, defaultAuthority);
CFErrorRef error = NULL;
CSIdentityQueryExecute(query, 0, &error);
CFArrayRef results = CSIdentityQueryCopyResults(query);
int numResults = CFArrayGetCount(results);
NSMutableArray * users = [NSMutableArray array];
for (int i = 0; i < numResults; ++i) {
CSIdentityRef identity = (CSIdentityRef)CFArrayGetValueAtIndex(results, i);
CBIdentity * identityObject = [CBIdentity identityWithCSIdentity:identity];
[users addObject:identityObject];
}
CFRelease(results);
CFRelease(query);
//users contains a list of known Aqua-style users.
Run Code Online (Sandbox Code Playgroud)
这些CBIdentity
对象比CSIdentityRef
对象使用起来更方便,但它们确实需要导入Collaboration框架.