> On 6 Jul 2016, at 18:09, Douglas Gregor <[email protected]> wrote:
>
>> On Jul 5, 2016, at 10:35 PM, Ben Rimmington <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>> On 5 Jul 2016, at 21:41, Douglas Gregor <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>>> The following comment is incorrect, AFAIK. The `helpAnchor` is the name
>>>> attribute of a HTML anchor element.
>>>>
>>>> /// A localized message providing "help" text if the user requests help.
>>>> var helpAnchor: String? { get }
>>>
>>> Apple’s documentation says:
>>>
>>> NSHelpAnchorErrorKey
>>> The corresponding value is an NSString containing the localized help
>>> corresponding to the help button. See helpAnchor
>>> <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSError_Class/#//apple_ref/occ/instp/NSError/helpAnchor>
>>> for more information.
>>>
>>
>> A `helpAnchor` in AppKit is the name of an HTML anchor element:
>>
>> AppKit > NSPrintPanel > helpAnchor
>> <https://developer.apple.com/reference/appkit/nsprintpanel/1490537-helpanchor
>>
>> <https://developer.apple.com/reference/appkit/nsprintpanel/1490537-helpanchor>>
>>
>> AppKit > NSHelpManager > openHelpAnchor(_:inBook:)
>> <https://developer.apple.com/reference/appkit/nshelpmanager/1500908-openhelpanchor
>>
>> <https://developer.apple.com/reference/appkit/nshelpmanager/1500908-openhelpanchor>>
>>
>> Apple Help Programming Guide > Authoring Apple Help > Indexing Your Help
>> Book > Setting Anchors
>> <https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/authoring_help/authoring_help_book.html#//apple_ref/doc/uid/TP30000903-CH206-CHDFBEHF
>>
>> <https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/authoring_help/authoring_help_book.html#//apple_ref/doc/uid/TP30000903-CH206-CHDFBEHF>>
>
> The relevant “helpAnchor” is from the NSError reference documentation:
>
>
> https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSError_Class/#//apple_ref/occ/instp/NSError/helpAnchor
>
> <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSError_Class/#//apple_ref/occ/instp/NSError/helpAnchor>
>
> which says:
>
> A string to display in response to an alert panel help anchor button being
> pressed. (read-only)
>
> Declaration
> SWIFT
> var helpAnchor: String
> <https://developer.apple.com/library/mac/documentation/Swift/Reference/Swift_String_Structure/index.html#//apple_ref/swift/struct/s:SS>?
> { get }
> OBJECTIVE-C
> @property(readonly, copy) NSString
> <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/index.html#//apple_ref/doc/c_ref/NSString>*helpAnchor
> Discussion
> The object in the user info dictionary for the key NSHelpAnchorErrorKey
> <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSError_Class/#//apple_ref/c/data/NSHelpAnchorErrorKey>.
> If the user info dictionary doesn’t contain a value for NSHelpAnchorErrorKey
> <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSError_Class/#//apple_ref/c/data/NSHelpAnchorErrorKey>,
> this property is nil.
>
> If this property is non-nil for an error being presented by alertWithError:
> <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSAlert_Class/index.html#//apple_ref/occ/clm/NSAlert/alertWithError:>,
> the alert panel will include a help anchor button that can display this
> string.
>
> Availability
> Available in OS X v10.6 and later.
>
> - Doug
>
The documentation on NSError help anchors is incorrect.
<rdar://problem/27208074>
I've tested this with a document-based Cocoa application. In the NSDocument
subclass, I modified the template as follows:
override func data(ofType typeName: String) throws -> Data {
throw NSError(domain: NSOSStatusErrorDomain, code: unimpErr,
userInfo: [NSHelpAnchorErrorKey: "ibks5f526382"])
}
override func read(from data: Data, ofType typeName: String) throws {
throw NSError(domain: NSOSStatusErrorDomain, code: unimpErr,
userInfo: [NSHelpAnchorErrorKey: "pbhlp3714a9d"])
}
Those help anchors were copied from the following file (in macOS 10.11.5):
<file:/Library/Documentation/Help/MacHelp.help/Contents/Resources/en.lproj/navigation.json>
When I try to open or save a document, an NSAlert with a help button is
presented. Clicking on that help button shows the expected help page:
{"name":"Read books in iBooks","href":"help:anchor='ibks5f526382'
bookID='com.apple.iBooksX.help'"}
{"name":"Take a Photo Booth photo","href":"help:anchor='pbhlp3714a9d'
bookID='com.apple.PhotoBooth.help'"}
But if I use a normal word or phrase with NSHelpAnchorErrorKey, the Mac Help
window displays:
The selected topic is currently unavailable.
The topic you were trying to view could not be found.
-- Ben
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution