首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态NSTouchBar项目

动态NSTouchBar项目
EN

Stack Overflow用户
提问于 2018-08-30 20:23:09
回答 1查看 240关注 0票数 0

我想知道是否可以动态创建NSTouchBar项。在我的应用程序中,我有一个填充NSTableViewController内容的dataSource协议。我想使用这个协议来用相同的选项填充touchBar。

这就是我正在使用的协议。

代码语言:javascript
复制
protocol RestaurantsViewControllerDelegate {
    func numberOfRestaurants(in restaurantsViewController: RestaurantsViewController) -> Int
    func restaurantsViewController(_ restaurantsViewController: RestaurantsViewController, restaurantAtIndex index: Int) -> Restaurant
    func restaurantsViewController(_ restaurantsViewController: RestaurantsViewController, didSelectRestaurant restaurant: Restaurant)
}

然而,我唯一找到的代码表明,我必须手动创建每个按钮,如下所示。

代码语言:javascript
复制
@available(OSX 10.12.1, *)
extension NSTouchBarItem.Identifier {
    static let restaurant = NSTouchBarItem.Identifier("my.custom.identifier")
}

extension RestaurantsViewController: NSTouchBarDelegate {
    override func makeTouchBar() -> NSTouchBar? {
        let touchBar = NSTouchBar()
        touchBar.delegate = self
        touchBar.defaultItemIdentifiers = [.restaurant]
        return touchBar
    }

    func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItem.Identifier) -> NSTouchBarItem? {
        switch identifier {

        case NSTouchBarItem.Identifier.restaurant:
            let item = NSCustomTouchBarItem(identifier: identifier)
            item.view = NSButton(title: "This is a restaurant", target: nil, action: nil)
            return item
        default: return nil
        }
    }
}

有没有办法做我想做的事?

EN

回答 1

Stack Overflow用户

发布于 2018-09-04 15:29:35

NSTouchBarItem.Identifier可以基于任何字符串,包括基于Restaurant对象的某个标识符的动态字符串。您可以将defaultItemIdentifiers设置为动态生成的标识符的数组,然后将为每个标识符调用touchBar(_:,makeItemForIdentifier:) (然后您可以动态地为每个标识符创建一个按钮或其他方式)。

另一种选择是使用NSScrubber。这可以是Touch Bar中的单个项目,但是它有一个DataSource,可用于根据您的Restaurant数据源填充它。

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

https://stackoverflow.com/questions/52096989

复制
相关文章

相似问题

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