NSTextView и подсветка ссылок - PullRequest
0 голосов
/ 02 апреля 2012

Я использую NSTextView с NSAttributedString для отображения некоторых ссылок, используя NSLinkAttributeName. Я оформляю эти ссылки, используя setLinkTextAttributes: метод NSTextView. Однако я хотел бы дать пользователю визуальную обратную связь, когда он щелкает ссылку, например, изменяя цвет ссылки, пока пользователь нажимает левую кнопку мыши. Есть ли простой способ сделать это, или я должен использовать NSTextAttachment?

1 Ответ

3 голосов
/ 02 апреля 2012

Я не думаю, что есть простой способ сделать это, если вы хотите, чтобы это произошло в событии mouseDown. Если вы можете подождать, пока щелчок не будет завершен, то вы можете сделать это с помощью метода делегата текстового представления textView: clickedOnLink: atIndex: получить индекс ссылки, по которой щелкнули. Затем вы могли бы использовать этот индекс для передачи в метод хранения текста attributeAtIndex :ffectiveRange: чтобы получить диапазон ссылки и, наконец, использовать setAttributes: range:, чтобы внести любые необходимые изменения в атрибуты ссылки.

Если вам действительно нужно сделать это с помощью mouseDown, вам придется разделить текстовое представление на подклассы и переопределить mouseDown и, возможно, использовать что-то вроде characterIndexForPoint: чтобы узнать, нажали ли вы ссылку и ответили, как указано выше.

...