Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 获取用户帐户映像_Cocoa_Macos - Fatal编程技术网

Cocoa 获取用户帐户映像

Cocoa 获取用户帐户映像,cocoa,macos,Cocoa,Macos,简单地说:如何获取用户的帐户映像 我在Mac上使用Cocoa。如果您可以获得代表所讨论用户的CSIdentityRef或CBIdentity*的句柄,那么您可以调用-[CBIdentity image]方法来检索他们的帐户映像 编辑: 下面是我之前的回答,它显示了如何查询系统上的所有标准用户帐户,并将它们转换为CBIdentity对象: 如果您不想链接到Collaboration.framework,那么可以使用类似(或类似变体之一)的方法直接获取图像。我个人认为使用本机Cocoa对象更好,但在

简单地说:如何获取用户的帐户映像


我在Mac上使用Cocoa。

如果您可以获得代表所讨论用户的
CSIdentityRef
CBIdentity*
的句柄,那么您可以调用
-[CBIdentity image]
方法来检索他们的帐户映像

编辑:

下面是我之前的回答,它显示了如何查询系统上的所有标准用户帐户,并将它们转换为
CBIdentity
对象:


如果您不想链接到Collaboration.framework,那么可以使用类似(或类似变体之一)的方法直接获取图像。我个人认为使用本机Cocoa对象更好,但在这种情况下,这并不是绝对必要的。

如果您只需要登录用户的图像,也可以使用AddressBook使用一行代码获取图像:

NSData *imgData = [[[ABAddressBook sharedAddressBook] me] imageData];

但我相信这不能保证与登录图像相同。

如果用户删除vcard,则地址簿方法不起作用

我使用了永不中断的CBIdentity方法,正如Dave所说:

+ (NSImage *)userImage
{
    CBIdentity *identity = [CBIdentity identityWithName:NSUserName() authority:[CBIdentityAuthority defaultIdentityAuthority]];
    return [identity image];
}
为了使用CBIdentity,您需要将协作框架添加到目标中,并使用以下include指令

#import <Collaboration/Collaboration.h>
#导入

是的,如果可能的话,我确实想要用户帐户映像(登录映像),而不仅仅是用户的通讯簿配置文件映像。谢谢anyway@magikseb然后我认为戴夫的方法是可行的,这就是我投票支持它的原因!:)+浏览地址簿是一个非常有趣的想法。我不知道这是否是OP想要的,但这是一个寻找信息的好地方。我想这对我来说会很好。起初它不起作用,因为我没有通过按系统首选项中的按钮为自己创建卡。这可能不好,但我输入了帮助,转到Sys Prefs=>Accounts,单击按钮等,使其正常工作。@magikseb:我认为当设置用户帐户时,地址簿卡也是如此,但我不是肯定的。当然,用户可以更改或删除该卡。我删除了我的。很抱歉,但经过一点研究,我仍然不知道如何编写此代码?如果图像发生更改,是否有任何方法可以得到通知?CSIdentity查询回调似乎没有注意到image@Radekprogrammer:“Cocoa”意味着他在使用Objective-C。戴夫·德隆:至少100%的人都不这么认为。Ruby和Python绑定是可用的,汇编也是一个选项。@Radek很公平,不过如果他使用Ruby或Python桥,他可能会指定。无论如何,你是对的。当我使用此选项时,
[identity image]
的值为零,但我的映像在系统首选项中是一个纸杯蛋糕:/n是否有方法在映像更改时得到通知?@LoyalTingley您找到了解决问题的方法吗?我想我遇到了同样的问题。对我来说,该API为任何管理员用户返回的图像都是零。