【问题标题】:NSTextField not visibleNSTextField 不可见
【发布时间】:2018-05-06 16:41:06
【问题描述】:

我最近开始编写 Swift 代码。所以我正在开发一个 macOS 应用程序来更习惯 Swift。

我希望在用户按下按钮时创建一个 NSTextField。我得到了下面的代码,但 NSTextField 没有显示。虽然研究我发现它必须以某种方式添加到视图中,而不是如何完成。

@IBAction func buttonPressed(_ sender: Any) {
    let label = NSTextField()
    label.stringValue = ("Hello World")   
}

如何使 NSTextField 显示?任何帮助将不胜感激。

【问题讨论】:

  • 您创建了文本字段,但没有将其添加到任何父视图或设置其框架。

标签: swift macos nstextfield


【解决方案1】:

只需将标签转换为支持图层的视图即可。然后将其添加到可见视图中:

let rect = NSMakeRect(20, 20, 80, 44)
let label = NSTextField(frame: rect)
label.wantsLayer = true
label.layer?.backgroundColor = NSColor.greenColor().CGColor
window?.contentView?.addSubview(label)

【讨论】:

  • 为什么不让文本字段成为视图控制器视图的子视图?
  • 代码不起作用,Xcode返回“Use of unresolved identifier 'window'”
  • @TobiasWilfert 将 window?.contentView? 更改为 view
  • 为什么“把标签变成一个图层支持的视图”?
【解决方案2】:
let rect = NSMakeRect(20, 20, 80, 44)
let label = NSTextField(frame: rect)
view.addSubview(label)

为我工作。在带有 swift 4 的 Xcode 10 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    相关资源
    最近更新 更多