首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NSImageView中填充NSTouchBar

在NSImageView中填充NSTouchBar
EN

Stack Overflow用户
提问于 2017-01-15 10:17:21
回答 1查看 246关注 0票数 0

我目前正在创建一个微小的开源应用程序来预览一个新的触摸栏内部。我有一个拖放视图的窗口,可以通过它的URL接收图像。和一个IB触摸条与NSImageView在一个TouchBarView内。

界面生成器结构(屏幕截图)

这在我的MainViewController中用于显示窗口中的图像:

代码语言:javascript
复制
extension ViewController: DropDestinationViewDelegate {

    func processImageURLs(_ urls: [URL]) {
        for (_,url) in urls.enumerated() {

            // pass URL to Window Controller
            let windowController = WindowController()
            windowController.showImageInTouchBar(url)

            // create the image from the content URL
            if let image = NSImage(contentsOf:url) {

                imagePreviewView.image = image
            }
        }
    }

}

如您所见,我使用委托来侦听拖放事件以获取图像URL。现在,我想使用图像/URL在Touch Bar中显示相同的图像。我已经创建了带有接口生成器的Touch Bar,并将图像-url传递给WindowController

在我的WindowController中,我试图像这样处理图像:

代码语言:javascript
复制
class WindowController: NSWindowController {

    @IBOutlet var touchBarImageView: NSImageView!

    override func windowDidLoad() {
        super.windowDidLoad()
    }

    func showImageInTouchBar(_ url: URL) {
        print(url)

        if let touchbarImage = NSImage(contentsOf:url) {
            touchBarImageView.image = touchbarImage
        }
    }
}

我正在使用print(url)接收正确的URL,但当我再次尝试创建该图像时,该应用程序将收到以下消息:

代码语言:javascript
复制
fatal error: unexpectedly found nil while unwrapping an Optional value
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-15 18:58:42

我用补丁创建了一个拉请求。

您的问题是,您正在创建一个新的WindowController,并使用它作为引用,而使用由NSWindow创建和使用的控制器。

结果:

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

https://stackoverflow.com/questions/41660017

复制
相关文章

相似问题

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