小编Tim*_*oes的帖子

在Xcode 9.2和Swift 4中,AppDes是否破坏了IBDesignable?

大多数问题以及与此相关的答案均基于Xcode和Swift的旧版本.此外,90%的问题与UIKit和绘制自定义控件有关.

我正在添加一个标准按钮,它位于一个自定义控件内部,用IBDesignable.

import Cocoa

@IBDesignable public class ButtonPresetView: NSView {
    public override init(frame frameRect: NSRect) {
        super.init(frame: frameRect)
        initialControlSetup()
    }

    public required init?(coder decoder: NSCoder) {
        super.init(coder: decoder)
        initialControlSetup()
    }

    private func initialControlSetup() {
        let button = NSButton(title: "Hello", target: nil, action: nil)
        button.translatesAutoresizingMaskIntoConstraints = false
        addSubview(button)

        // Configure button
        centerXAnchor.constraint(equalTo: button.centerXAnchor).isActive = true
        centerYAnchor.constraint(equalTo: button.centerYAnchor).isActive = true
    }
}
Run Code Online (Sandbox Code Playgroud)

我向应用程序添加了一个自定义视图,并将Identity Inspector中的class属性设置为我的自定义类(ButtonPresetView).

它应该显示以画布为中心的按钮,但画布为空白.不确定很多人会这样使用它,但它在Xcode 8.3中使用Swift 3非常有效.

还有其他人有这个问题吗?

appkit ibdesignable swift4 xcode9.2

5
推荐指数
1
解决办法
681
查看次数

标签 统计

appkit ×1

ibdesignable ×1

swift4 ×1

xcode9.2 ×1