Theory
According to the Developer's documentation, the SFCertificateView class can post the SFCertificateViewDisclosureStateDidChange notification to inform the observers that the Trust or Details disclosure triangles have been opened or closed.
Reality
When you try to build a project (which does link to the SecurityInterface framework) that contains a reference to the SFCertificateViewDisclosureStateDidChange string, the build will fail:
the _SFCertificateViewDisclosureStateDidChange symbol can not be found.
Which is somehow "funny" considering that the symbol is defined in the /System/Library/Frameworks/SecurityInterface.framework framework.
What is even "hilarious" is that in 2010 I was suggested on the cdsa mailing-list that a bug report should be filed to make sure the SFCertificateViewDisclosureStateDidChange get added to the public header of the SecurityInterface framework.
Workaround
Using @"SFCertificateViewDisclosureStateDidChange" instead of SFCertificateViewDisclosureStateDidChange works.
Bug report
I've already filed a bug report against this -> Problem ID# 30143127
Questions
- Should I also file a bug report against the documentation?
- Is there any plan to improve the SecurityInterface framework by modernizing the Objective-C APIs?
- properties
- more consistent method naming (e.g. SFCertificateView isTrustDisplayed vs detailsDisplayed)
- designed for ARC: e.g. to avoid having to keep a f****g reference to SFChooseIdentityPanel not to crash during the sheet lifetime.
- completion handler blocks