首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSStackView自定义NSView

使用NSStackView自定义NSView
EN

Stack Overflow用户
提问于 2020-03-29 00:15:07
回答 1查看 186关注 0票数 0

我正在尝试使用始终相同的自定义视图来实现NSStackView。所以我已经定义了我的xib文件,链接了我的类中的所有内容,关联了类,...但是我确信我遗漏了一些东西,因为视图中的内容没有显示出来。非常感谢您的帮助。

我的故事板:

我的xib文件:

当我运行以下代码时的结果:

我的文件是这样的:

代码语言:javascript
复制
class CustomView: NSView, NSTableViewDelegate, NSTableViewDataSource {
    @IBOutlet weak var segmentControlOutlet: NSSegmentedControl!
    @IBOutlet weak var tableViewOutlet: NSTableView!
}

class ViewController: NSViewController, NSStackViewDelegate {
    
    @IBOutlet weak var stackViewOutlet: NSStackView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        stackViewOutlet.delegate = self
        
        let newView = CustomView()
        stackViewOutlet.addArrangedSubview(newView)
        
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-29 05:31:27

我已经找到了答案,你需要正确地初始化视图。为此,请执行以下操作:

代码语言:javascript
复制
class CustomView: NSView, NSTableViewDelegate, NSTableViewDataSource {

    @IBOutlet var viewOutlet: NSView!
    @IBOutlet weak var segmentControlOutlet: NSSegmentedControl!
    @IBOutlet weak var tableViewOutlet: NSTableView!

    override init(frame frameRect: NSRect) {
        super.init(frame: frameRect)
        Bundle.main.loadNibNamed("CustomView", owner: self, topLevelObjects: nil)
        addSubview(viewOutlet)
        viewOutlet.frame = self.bounds
        viewOutlet.autoresizingMask = [.height, .width]
    }

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        Bundle.main.loadNibNamed("CustomView", owner: self, topLevelObjects: nil)
        addSubview(viewOutlet)
        viewOutlet.frame = self.bounds
        viewOutlet.autoresizingMask = [.height, .width]
    }

    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        // Drawing code here.
    }
}

当您加载nib名称时,"CustomView“是您的xib文件的名称;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60903332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档