클릭 한 후 NSAttributedString의 시각적 상태를 복원해야합니다.클릭 한 후 NSAttributedString의 시각적 상태를 복원하십시오.
내 NSAttributedString에 범위에 속한 링크가 포함되어 있습니다. 텍스트 필드에 "@user"를 클릭 : "//somesite.com/ HTPP"그것은 잘 작동
let text = "Hey @user!"
let attr = NSMutableAttributedString(string: text)
let range = NSRange(location: 4, length: 5)
attr.addAttribute(NSForegroundColorAttributeName, value: NSColor.orange, range: range)
attr.addAttribute(NSLinkAttributeName, value: "htpp://somesite.com/", range: range)
let tf = NSTextField(frame: NSRect(x: 0, y: 0, width: 200, height: 50))
tf.allowsEditingTextAttributes = true
tf.isSelectable = true
tf.stringValue = text
tf.attributedStringValue = attr
이 예제 텍스트 "@user"에서
는에 AA 링크가 URL을 시작합니다. I 복원 솔루션을 찾을 수 없습니다
:
하지만 일단은 기인 색이 사라지고이 블루로 대체되며, 밑줄이 추가되고, 클릭 문자열이 클릭되면 원래 색상 (또는이 자동 변경이 전혀 발생하지 않도록).
내가 this 및 this을 본 적이 있지만이 실제 해결책은 없다, 나는 내 프로젝트에 뾰족한 라이브러리를 통합 할 수 있습니다 (정말 실제로, 어떤 라이브러리를 가져올 필요가 없습니다 싶습니다).
기존 코드는 Swift에 있지만 Objective-C 솔루션을 사용할 수 있습니다.
첫 번째 해결 방법 : 아주 좋음. 그러나 부작용은 약간의 문제입니다. 거기에서 링크 자체를 얻을 수있는 방법이 있습니까? 그 유형을 필터링하고 올바른 색상을 다시 설정할 수 있습니다. // 설명 할 수 있다면 두 번째 해결책을 이해하지 못합니다. : p – Moritz
'NSTextFieldCell'에는 'attributedStringValue'속성이 있습니다. – Willeke
그동안 나는 내 대답을 편집했습니다. – Willeke