뷰에 그릴 때, 그것은 주어진 NSRect
에서 String
을 그릴 것 text: String
및 area: NSRect
를, 관련 않은 구조체 Concept
을 감안할 때.NSTextField있는 콘텐츠를 설정 그리기 NSRect
클릭에 내가 textField.frame = concept.area
을 설정하려고하면 "내용"(셀) NSRect 지정된 NSRect
와 동일한 NSTextField
을 보여주기 위해 내가 좋아하는 것, 세포가 삽입 된 렌더링됩니다 위치를 테두리 + 패딩을 고려하여 NSTextField
, 그래서, 약간 다른, NSRect 이동 텍스트를 렌더링합니다. 나는 이것을 달성 할 수있는 방법에
아이디어 :
코드에서 아이디어는
struct Concept {
let text: String
let area: NSRect
func draw() {
text.draw(inRect: area)
}
}
let conceptRect = NSRect(x: 50, y: 60, width: 80, height: 20)
let concept = Concept(text: "sample text", area: conceptRect)
let textField = NSTextField()
textField.stringValue = concept.text
textField.???? = area
let textFieldRect = textField.frame
assert(textFieldRect != conceptRect)
assert(textFieldRect.contains(conceptRect))
그리고 예상되는 결과 같은 모양을해야 할 것인가?
감사
NSTextField를 항상 사용하지 않고 클릭 할 때만 편집 가능/테두리를 변경하지 않는 이유는 무엇입니까? – catlan
나는 여러 가지 텍스트 필드를 필요로하지 않는 리소스 측면에서 이러한 종류의보기를 구현하는 다양한 접근 방식을 실험하고 있습니다. 항상 1이 활성화 될 것이고 그 이상이 아니기 때문에 나는 단지 위치에있는 일반적인 텍스트 필드를 사용하기로 결정했습니다. 나는 어디에 내 콘텐츠를 그립니다. – fespinozacast
[Sketch Sample Code] (https://developer.apple.com/library/content/samplecode/Sketch/Introduction/Intro.html)를보십시오. – Willeke