48 lines
1.1 KiB
Swift
48 lines
1.1 KiB
Swift
|
// 31 july 2015
|
||
|
import Cocoa
|
||
|
|
||
|
class Entry : NSTextField, Control {
|
||
|
private var parent: Control?
|
||
|
|
||
|
init() {
|
||
|
var cell: NSTextFieldCell
|
||
|
|
||
|
self.parent = nil
|
||
|
|
||
|
super.init(frame: NSZeroRect)
|
||
|
self.selectable = true
|
||
|
self.font = NSFont.systemFontOfSize(NSFont.systemFontSizeForControlSize(NSControlSize.RegularControlSize))
|
||
|
self.bordered = false
|
||
|
self.bezelStyle = NSTextFieldBezelStyle.SquareBezel
|
||
|
self.bezeled = true
|
||
|
cell = self.cell() as! NSTextFieldCell
|
||
|
cell.lineBreakMode = NSLineBreakMode.ByClipping
|
||
|
cell.scrollable = true
|
||
|
self.translatesAutoresizingMaskIntoConstraints = false
|
||
|
}
|
||
|
|
||
|
required init?(coder: NSCoder) {
|
||
|
fatalError("can't use this constructor, sorry")
|
||
|
}
|
||
|
|
||
|
func View() -> NSView {
|
||
|
return self
|
||
|
}
|
||
|
|
||
|
func SetParent(p: Control) {
|
||
|
self.parent = p
|
||
|
}
|
||
|
|
||
|
// by default a text entry has no intrinsic content width
|
||
|
// in order for our layout containers to work, we need to give it one
|
||
|
// give it what Interface Builder uses as a default
|
||
|
// TODO verify against Interface Builder
|
||
|
override var intrinsicContentSize: NSSize {
|
||
|
get {
|
||
|
var s = super.intrinsicContentSize
|
||
|
s.width = 96
|
||
|
return s
|
||
|
}
|
||
|
}
|
||
|
}
|