首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从NSToolbarItem子类获取对NSWindow的引用

从NSToolbarItem子类获取对NSWindow的引用,可以通过以下步骤实现:

  1. 首先,确保你的NSToolbarItem子类已经与NSToolbar关联。这可以通过在NSWindowController或NSViewController中实现toolbarAllowedItemIdentifiers和toolbarDefaultItemIdentifiers方法来完成。
  2. 在NSToolbarItem子类中,可以通过调用toolbar方法获取对NSToolbar的引用。例如:
代码语言:txt
复制
if let toolbar = self.toolbar {
    // 在这里可以使用toolbar进行进一步操作
}
  1. 通过NSToolbar的delegate属性,可以获取对NSWindow的引用。在NSToolbarDelegate中,可以实现toolbarWillAddItem和toolbarDidRemoveItem方法,这些方法在向NSToolbar添加或移除NSToolbarItem时被调用。在这些方法中,可以通过调用toolbar的performSelector方法来获取对NSWindow的引用。例如:
代码语言:txt
复制
func toolbarWillAddItem(_ notification: Notification) {
    if let toolbar = notification.object as? NSToolbar {
        if let window = toolbar.perform(Selector(("window")))?.takeUnretainedValue() as? NSWindow {
            // 在这里可以使用window进行进一步操作
        }
    }
}

需要注意的是,performSelector方法在Swift中是一个动态方法,需要使用Objective-C的Selector来调用。

综上所述,通过以上步骤,可以从NSToolbarItem子类获取对NSWindow的引用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 一份走心的iOS开发规范

    说是前言,其实也是本文诞生的目的。随着公司业务的不断增加,功能的快速迭代,app的业务线越来越多,代码体积变得越来越庞大。同时,app投入的开发者也也越来越多,不同的开发者的code风格千差万别。加之公司开发者人员变动,为了保证app稳定性,保证开发效率,统一开发风格。于是,这篇iOS开发规范应运而生。 因笔者现在所就职公司的开发规范主导编写,目前公司业务的迭代都在按照这个规范在有条不紊的进行。综合之前编写规范的经验,历时一个月的时间,断断续续重新梳理了一份比较全面、比较完整的iOS开发者规范,希望这些条条框框能够给正在阅读的你提供一些参考的价值。也希望越来越多的iOS开发者能够养成优秀的编码习惯。如果你觉得个别地方不妥或者有需要补充的规范,请留言或者私信,我会第一时间响应。

    014

    cas与自旋锁(轻量级锁就是自旋锁吗)

    CAS算法的作用:解决多线程条件下使用锁造成性能损耗问题的算法,保证了原子性,这个原子操作是由CPU来完成的 CAS的原理:CAS算法有三个操作数,通过内存中的值(V)、预期原始值(A)、修改后的新值。 (1)如果内存中的值和预期原始值相等, 就将修改后的新值保存到内存中。 (2)如果内存中的值和预期原始值不相等,说明共享数据已经被修改,放弃已经所做的操作,然后重新执行刚才的操作,直到重试成功。 注意: (1)预期原始值(A)是从偏移位置读取到三级缓存中让CPU处理的值,修改后的新值是预期原始值经CPU处理暂时存储在CPU的三级缓存中的值,而内存指定偏移位置中的原始值。 (2)比较从指定偏移位置读取到缓存的值与指定内存偏移位置的值是否相等,如果相等则修改指定内存偏移位置的值,这个操作是操作系统底层汇编的一个原子指令实现的,保证了原子性

    01
    领券