dro*_*ang 7 macos cocoa nstextfield swift
对于非系统字体,将usesSingleLineMode设置为true会导致文本的顶部被剪裁.
我创建了3个非常简单的测试用例来说明这一点:
将以下内容添加到新Cocoa OSX应用程序的viewDidLoad()方法中:
// Do any additional setup after loading the view.
let good = NSTextField(frame: NSRect(x: 0, y: 0, width: 800, height: 55))
good.usesSingleLineMode = false
good.font = NSFont(name: "HelveticaNeue-UltraLight", size: 24)
good.stringValue = "Good usesSingleLineMode false "
self.view.addSubview(good)
let bad = NSTextField(frame: NSRect(x: 0, y: 100, width: 800, height: 55))
bad.usesSingleLineMode = true
bad.font = NSFont(name: "HelveticaNeue-UltraLight", size: 24)
bad.stringValue = "Bad usesSingleLineMode true"
self.view.addSubview(bad)
let system = NSTextField(frame: NSRect(x: 0, y: 200, width: 800, height: 55))
system.usesSingleLineMode = true
system.font = NSFont.systemFontOfSize(24)
system.stringValue = "Good usesSingleLineMode true, System Font"
self.view.addSubview(system)
Run Code Online (Sandbox Code Playgroud)

如果我bad在故事板中使用Interface Builder 创建相同的NSTextField,请在IB中设置字体并选中IB中的使用单行模式,它可以正常工作!但是,在IB中构建整体视图是不切实际的,因此我想以编程方式创建它.
为什么会这样?我是否错过了一些重要设置(我尝试调整许多NSTextField和NSTextFieldCell参数无效?有解决方法吗?
| 归档时间: |
|
| 查看次数: |
567 次 |
| 最近记录: |