如果我在绘制代码 I 中创建一个对象,则会从选项卡部分获得样式表或代码。
样式表:
import Cocoa
public class StyleKitName : NSObject {
//// Drawing Methods
public class func drawMain() {
//// Color Declarations
let color = NSColor(calibratedRed: 1, green: 0, blue: 0, alpha: 1)
//// Rectangle Drawing
let rectanglePath = NSBezierPath(rect: NSMakeRect(29, 30, 198, 166))
color.setFill()
rectanglePath.fill()
}
}
选项卡中的代码:
//// Color Declarations
let color = NSColor(calibratedRed: 1, green: 0, blue: 0, alpha: 1)
//// Rectangle Drawing
let rectanglePath = NSBezierPath(rect: NSMakeRect(29, 30, 198, 166))
color.setFill()
rectanglePath.fill()
然后我该如何将其导入到我的 swift 项目中。我尝试将样式表放入单独的 .swift
文件中,然后通过执行以下操作从 NSViewController
中的 viewDidLoad
函数调用该函数:var矩形 = StyleKitName.drawMain()
但 NSView 上什么也没有出现。我还尝试将选项卡中的代码直接粘贴到 View Controller 的 View 中,但 View Controller 上没有显示任何内容。
有人知道我做错了什么吗?
最佳答案
对于创建自定义 View ,您有点迷失方向。
1) StyleKitName 必须继承自 NSView
。阅读 NSView 类引用。
2) 要定义自定义 View 如何绘制自身,您必须重写 drawRect()
,而不是定义您自己的函数。
3) 要使 View 自行绘制,您不能直接调用 drawRect()
,而是调用 setNeedsDisplayInRect()
4) viewDidLoad() 不是 ViewController 生命周期中调用绘图函数的正确位置。如果您通过在 viewDidLoad()
中使用 addSubView()
在主视图中布局自定义 View ,则无需启动任何绘图请求。您应该在加载时进行布局,定义在编译时如何绘制 View ,并让 OS X 决定何时在运行时重绘它。
关于xcode - 如何将点代码的输出添加到我的 Swift OSX 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31730875/