【问题标题】:Drawing a colored rectangle in a macOS app (Swift)在 macOS 应用程序中绘制彩色矩形 (Swift)
【发布时间】:2014-10-18 20:34:08
【问题描述】:

刚开始学习 Swift。我使用Xcode 6 Beta 6 创建了一个 macOS 应用程序项目。现在我想使用ViewController.swift 在应用程序主视图(Main.storyboard 中的NSWindow)中绘制一个彩色矩形(用于测试目的)。

我试过这个:

override func viewDidLoad() {
   let myRect = NSView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
   myRect!.backgroundColor = NSColor.redColor().CGColor // app crashes here
   self.view.addSubview(myRect)
}

应用在第三行崩溃:EXC_BAD_INSTRUCTION

不仅 Swift,而且 Xcode 对我来说都是全新的,如果有任何帮助,我将不胜感激。

【问题讨论】:

    标签: xcode cocoa calayer nsview cgrect


    【解决方案1】:

    尝试将代码放在 ViewDidAppear 中...

    您正在尝试在尚未显示的视图上绘制一个矩形。

    【讨论】:

      【解决方案2】:

      我认为您在设置背景颜色之前错过了添加以下内容:

      theRectangle.wantsLayer = true
      

      【讨论】:

        【解决方案3】:

        我问这个问题已经有一段时间了,但我注意到它最近获得了很多观点,所以提供一个实际的答案(Swift 4.2)可能对一群人有帮助:

        override func viewDidLoad() {
           let myFrame = NSRect(x: 0.0, y: 0.0, width: 200.0, height: 200.0)
           let myRect = NSView(frame: myFrame)
           myRect.backgroundColor = NSColor.red
           self.view.addSubview(myRect)
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多