我使用 Python 创建了一个 Mail.app 插件,通过在 ComposeBackEnd 中调配 setSignature: 方法来设置从远程服务器提取的自定义签名。根据下面的类转储,我可以使用 setSignatureContents: 设置纯文本签名:这是功能性的。
@interface Signature : NSObject <NSCopying>
{
NSString *_uniqueId;
NSString *_name;
NSData *_webArchiveData;
BOOL _isRich;
BOOL _isSavedAsRich;
BOOL _isDirty;
MFSyncedFile *_syncedFile;
}
- (id)syncedFile;
- (id)signaturePath;
- (unsigned long long)hash;
- (BOOL)isEqual:(id)arg1;
- (BOOL)isRich;
- (void)setIsRich:(BOOL)arg1;
- (void)setWebArchive:(id)arg1;
- (id)webArchive;
- (id)webArchiveData;
.....
- (void)setSignatureContents:(id)arg1;
- (id)signatureContents;
- (void)setSignatureName:(id)arg1;
- (id)signatureName;
@end
但是,当我尝试使用 setWebArchive 设置 HTML 签名时:(应该采用 NSData 对象):
signature.setWebArchive_(NSData.dataWithContentsOfURL_(NSURL.URLWithString_('http://...')))
我收到以下错误:
11/7/12 11:07:38.858 AM Mail[8820]: -[NSConcreteData data]: unrecognized selector sent to instance 0x7ffc2386bc00
(远程文件已经是正确的格式)
有什么办法可以使这项工作?提前致谢。
编辑 - 试过这个(返回应该响应的 WebArchive 对象-[data]
):
wds = WebDataSource.alloc().initWithRequest_(NSURLRequest.requestWithURL_(NSURL.URLWithString_('http://...')))
webarchive = wds.webArchive
signature.setWebArchive_(webarchive)
结果:
11/7/12 3:26:59.173 PM Mail[16814]: An uncaught exception was raised
11/7/12 3:26:59.173 PM Mail[16814]: Class OC_PythonObject: no such selector: data