は、ビューの上に描かれたとき、それは与えられたNSRect
でString
を描画することtext: String
とarea: NSRect
を、関連付けられた構造体Concept
を考えます。私は、クリック、にしたいと思いますNSTextFieldのコンテンツを設定描くNSRect
はNSRect私はtextField.frame = concept.area
を設定しようとした場合、セルは挿入図にレンダリングされる与えられた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