ssh*_*ssh 3 xcode swift-playground xcode8
Xcode不会NSView在操场上显示.但它显示UIView没有任何问题.这是一个错误吗?
码:
let view = NSView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
view.layer?.backgroundColor = NSColor.white.cgColor
PlaygroundPage.current.liveView = view
Run Code Online (Sandbox Code Playgroud)
Xcode Playground也非常慢.有没有办法加快操场的速度?
UIView并且NSView都位于它们的工作原理不同.您发布的代码足够UIView但不适合NSView.
根据Apple文档NSView:
NSView对象提供了在应用程序中绘制,打印和处理事件的基础结构.您通常不直接使用NSView对象.相反,您使用其类来自NSView的对象,或者您自己子类化NSView并覆盖其方法以实现您需要的行为.
和
draw(_:)绘制NSView对象.(所有子类都必须实现此方法,但很少显式调用它.)
所以,你必须继承NSView并实施draw(_:)
这是代码:
import Cocoa
import PlaygroundSupport
class view: NSView
{
override init(frame: NSRect)
{
super.init(frame: frame)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func draw(_ dirtyRect: NSRect)
{
NSColor.blue.setFill()
NSRectFill(self.bounds)
}
}
var v = view(frame: NSRect(x: 0, y: 0, width: 200, height: 200))
PlaygroundPage.current.liveView = v
Run Code Online (Sandbox Code Playgroud)
输出:
在Playground中使用iOS比使用macOS更好,因为它很简单,你也可以找到大量的教程或答案.
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |