Какао Рисование Кликабельный текст - PullRequest
1 голос
/ 27 июня 2011

Я пытаюсь нарисовать текст, который можно кликнуть.Я пытаюсь не использовать NSButton, поскольку мой текст рисуется в drawRect, а использование NSButton в drawRect заставляет его добавить подпредставление поверх него, если вы не пройдете и не удалите все подпредставления при каждом вызове drawRect.

Я попытался создать NSButton, и вместо того, чтобы добавить его в качестве подпредставления, я вызываю [myBtn.cell drawTitle: withFrame: inView:], который рисует текст, но он не активен.

Есть ли способ нарисоватьтекст (таким же образом, как при использовании drawInRect), но где я также могу сделать текст кликабельным?

Если нет, что бы вы порекомендовали?Использование стандартного NSButton и очистка всех подпредставлений каждый раз?

1 Ответ

1 голос
/ 28 июня 2011

Один из способов, которые я видел раньше, это использовать NSAttributedString. Часть, на которую можно кликать, должна быть как-то изменена (т.е. иметь другие NSForegroundColorAttributeName и NSUnderlineStyleAttributeName), а затем прикрепить к ней NSURL с помощью NSLinkAttributeName.

Если я правильно помню, я считаю, что это подкласс NSTextField, который делает это: DSClickableURLTextField

Я бы порекомендовал не рисовать текст самостоятельно, потому что в AppKit есть много вещей, которые сделают это за вас. Зачем вам это нужно рисовать самостоятельно?

...