首页
学习
活动
专区
工具
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的引用。

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

相关·内容

macOS AppKit 事件响应简介

NSApplication 一个重要任务就是macOS系统窗口服务中接收事件(Event),然后将它们派发到相应NSResponsder对象....每个应用都有一种明确机制用来确保操作系统窗口服务中获取事件(Event).在Cocoa Application中,这种机制叫做runloop(一个NSRunLoop对象,它允许进程接收窗口服务各种来源...为了能从窗口服务接收事件和对接收到事件进行处理,runloop通常包含这两个部分:端口(Mach port)和事件队列(event queue) image 端口(Mach port):用来操作系统窗口服务中获取事件...另一种意义上讲,应用程序是被事件(event)驱动: 它从runloop事件队列中获取一个事件(NSEvent) 派发事件(NSEvent)到合适对象(Object) 事件被处理完成后,再取下一个事件...:方法 键盘事件派发路径 响应键盘输入是事件派发中最复杂部分之一.Cocoa 应用程序会遍历每一个键盘事件来确定它属于那种类型然后以及如何处理.先来看一下苹果官方给出一个键盘事件可能传递传递路径:

2.7K60
  • Mac开发跬步积累(六): 响应链NSResponder Chain

    对于键盘事件, 响应是窗口第一响应者开始; 对于鼠标/触控板事件,响应是用户操作view开始; 如果事件消息在最初没有响应,那么响应链将按照视图层级结构依次传递消息,直到窗口对象(NSWindow...当一个NSWindow对象在接收到鼠标点击(mouse-down)事件时,会自动设置鼠标所处View为第一响应者;那么NSWindow对象如何确认某个对象是否能够成为第一响应者呢?...Controller keyDown: 尽管使用上面的方法,我们完成了ViewController键盘事件响应,但是却改变了原来响应链结构,姿势不够优雅,那么有没有不改变响应链结构,仍然可以让...答案:是改变第一响应者,因为键盘事件是第一响应者开始! 我们需要将响应链设置为下图效果即可:(View获取键盘事件后如果自己不响应,就会依据响应链传递给ViewController) ?...控制台信息 0x05 一些思考 本文通过示例抛砖引玉,仅仅讨论学习响应链冰山一角,希望学习macOS事件响应机制有所帮助,为了大家能够更深入了解响应链,留一些思考问题,激发大家主动学习姿势: NSEvent

    2.4K10

    教你如何快速 Oracle 官方文档中获取需要知识

    https://docs.oracle.com/en/database/oracle/oracle-database/index.html 如图,以上 7.3.4 到 20c 官方文档均可在线查看...11G 官方文档:https://docs.oracle.com/cd/E11882_01/server.112/e40402/toc.htm 这里以 11g R2 官方文档为例: 今天来说说怎么快速官方文档中得到自己需要知识...如果有不了解包可以在这里找到,比如说常用关于 dbms_stats包信息,包里面函数以及存储过程作用、参数说明、使用范例就可以在这文档中找到。...具体还没深入了解,但是感觉还是比较先进好用,当 plsql没有办法完成任务时候,可以使用 java存储过程来解决,比如说想要获取主机目录下文件列表。...(建议部署环境时候还是过一遍这里面的文档,网上文章因为环境差异可能在现有的硬件基础上出现这样那样问题。

    7.9K00

    C++核心准则R.37: 不要使用破损智能指针​获取指针或引用

    R.37: Do not pass a pointer or reference obtained from an aliased smart pointer R.37: 不要使用破损智能指针获取指针或引用...违反本规则是引用计数丢失和发生悬空指针第一号理由。函数更应该沿着调用链向下传递原始指针和引用。你应该在调用树最顶端,可以保证对象存在智能指针获得原始指针或引用。...要做到这点,你需要获取一个智能指针局部拷贝,通过它可以在函数和调用树执行期间将对象牢牢地锁定。...(简单)如果函数调用时使用了一个非局部智能指针变量(Unique_pointer or Shared_pointer)获取指针或者引用,报警。智能指针是局部变量但是可能是别名时也报警。...如果智能指针是一个Shared_pointer,建议获取一个智能指针局部拷贝然后该拷贝获取指针或引用

    51530

    如何突破单细胞数据获取门槛:GEO到Cell Ranger

    书接上回,一步步尝试代码复现,然后,我们就来到了Figure 2.I,乍看只是平平无奇堆叠图嘛,殊不知这是多个外部数据集整理后对比~ 在文章External dataset mapping部分,作者给出了这几个数据集来源...获取到lH5AD 格式文件,处理起来更有头绪~ Data from Li et al. were downloaded from NCBI GEO (GSE190965) and directly read...六个数据集,又可以get六个经验值,那就赶紧学习起来~ 先从第一个数据集开始,上来就是fastq文件,需要cellranger加工一下,那就开始吧—— 获取数据 E-MTAB-9139 < ArrayExpress...我们应该如何对应上样本信息呢?...该名称是任意,将用于命名包含所有管道生成文件和输出目录。只允许使用字母、数字、下划线和连字符(最多 64 个字符)。 --output-dir 【非必要】用于存储运行结果自定义输出目录路径。

    17410

    网易云音乐背景聊聊如何图片主题色进行提取

    第三种相对来说,技术层面来看,实现上是最为简单。 做了猜测分析后,我默默打开了熟悉 Chrome 控制台,打开了网易云音乐源代码: ? 好家伙,果然是第三种实现方式。?...但之前也有朋友问过我如何前端图片主题色进行提取问题,正好之前也做过类似的需求,这里就展开做个说明吧。 我们这里以一个图片网站为例,来展示实际业务中应用较广场景: ?...我们这里采用canvas来实现,具体分为三步: 获取图片数据 图片数据进行处理 颜色列表排序 这里我们使用测试图片为: ? 相对来说,主色调较为明显,也便于测试~ 获取图片数据 ?...可能图片还没加载完毕就开始画布读取图片数据了,显然这是不对。于是我原有代码做了一番调整: getMainColor("....获取了图片数据,下一步就要对其进行相应处理。 图片数据进行处理 ? 展开上一步得到数据: ? 这里数据是什么意思呢?

    1.5K40

    开源程序网站漏洞检测获取管理员密码漏洞如何修复

    pbootcms 存在严重漏洞,包含SQL注入获取管理员密码漏洞,以及远程代码注入执行漏洞。...pbootcms获取管理员密码漏洞分析 关于这个网站漏洞产生是存在于ParserController.php代码里parserSearchLabel()方式进行调用代码,可以插入一些非法参数,单引号...网站上漏洞进行修复,或者是网站安全防护参数进行重新设置,使他符合当时网站环境。...如果不懂如何修复网站漏洞,也可以找专业网站安全公司来处理,国内也就Sinesafe和绿盟、启明星辰等安全公司比较专业.针对于pbootcms默认管理员登录地址进行修改,默认是admin.php改为anquan123admin.php...即可,尽量长一些,字母加数字组合,避免攻击者进行暴力猜解,利用获取管理员账号密码登录后台。

    1.7K50

    手把手教你实现HazeOver

    半透明窗口很好实现,不是问题,问题在于,如何让这个窗口处于最前面窗口后面。2....让遮罩窗口位于最前方窗口后面一番搜索查找,在 NSWindow 官方文档上找到了答案,NSWindow 实例上有一个 order(_:relativeTo:) 方法,可以指定这个窗口实例放在某个弹窗上面或下面...但是这个方法也不太好调用,需要传入对应窗口 number 字段,而对应窗口一般是其他应用程序窗口,所以如何获取到最前面应用最前面窗口 number 字段,感觉很是一个比较棘手问题,官方文档也印证了这个想法...字段获取到窗口 number 字段。...如此终于就能调用 NSWindow.order(:relativeTo:) 方法了,如此,第一个问题也就有了技术方案。2.

    27130

    印度某电子商务公司LFI到数据库获取渗透测试过程

    LFI漏洞入手 本次渗透测试目标比较确定,最初我偏向去发现其中本地文件包含漏洞(LFI),所以我着重其中文件交互功能和特性进行了深入测试分析,很巧是,我发现了该公司一个针对不同移动设备显示...store”任意一个按钮,之后就会跳到如下页面:http://www.xxxx.com/downloadcallback/null: 接着,就会马上重定向到相应APP下载引用页面(Referrer...所以,去掉引用页面后,最终也就返回了“404 Page not found”没东西下载响应了。.../document”系统服务API中,还可获取到一些AWS账号ID和云服务区域信息,如下: 在我检查系统AWS Elastic Beanstalk部署环境时,还发现了一个API调用,用它可以获取到AWS...最终,这次LFI到SSRF,再到Elastic Beanstalk实例,最后再到S3 bucket数据库权限获取操作,导致了上万名目标公司客户敏感密钥凭据信息泄露。

    1.5K50

    Objective-C官方文档

    ) NSObject *unsafeProperty; NSObject *__unsafe_unretained unsafeReference; unsafe 引用 和weak引用类似,但是他在目标对象为...和class extension不同,associated reference 不影响原始class定义和实现,所以说即便没有原始数据访问权限,也可以使用。...意思是当你在运行时创建一个实例时,你会得到一个具体子类来存储提供值,就当那个对象是NSNumber子类就好。...命名最好用名词,以表示所指,例如:NSWindow, CAAnimation等 如果method需要一个或多个参数,方法名需要暗示出每一个参数,比如:subStringFromIndex: writeToUrl...工厂类方法在创建时应当以类名字作为开头(无前缀),除非类子类存在相同工厂方法了。例如 [NSMutableArray array];

    1.6K30

    计算机视觉领域如何别人论文里获取自己idea?

    编辑:Amusi 来源:知乎 https://www.zhihu.com/question/353691411 本文仅作为学术分享,如果侵权,会删文处理 计算机视觉领域如何别人论文里获取自己idea...找40篇比较新oral paper 最好是开源、你能看懂、尽可能时髦、大佬点赞。 然后画一个40*40矩阵。。...作者:张小雨 https://www.zhihu.com/question/353691411/answer/899997687 论文题目,概要,引言,结论和讨论入手。...其次,概要入手,看论文主要针对什么问题,大概方法是什么,最后结论是什么。牢牢把握住这三点。 最后看讨论和结论部分,这里往往是寻找idea重点所在。...另外,论文整理归类也十分重要,看得有一定数量以后,就会明白,针对某一个问题,主要研究方法有哪些,做程度如何,理解需要改进,深入,补足,问题迁移到其他领域甚至是提出创新性方法地方,这都是平时点滴积累

    1.3K20

    观点 | 如何优雅地四个方面加深深度学习理解

    2017 年 12 月 NIPS Test-of-Time Award 颁奖典礼上,Ali Rahimi 这样呼吁人们加深深度学习理解: 我希望生活在这样一个世界,它系统是建立在严谨可靠而且可证实知识之上...虽然他们没有理论上证明这个结果,但他们为什么存在这样路径给出了一些直观解释: 如果我们扰乱单个参数,比如添加一个小常数,然后让其它部分去自适应这种变化,仍然可以使损失最小化。...SGD 由随机微分方程控制 连续 SGD 彻底改变了我这个算法看法。...他们展示了如何离散系统过渡到 Fokker-Plank 方程所描述连续系统。...图源:维基百科 通过这个框架,Chaudhari 和 Soatto 证明了我们分布将单调地收敛于某个稳定分布( KL 散度意义来说): ?

    64210

    OC编程笔记

    ) NSObject *unsafeProperty; NSObject *__unsafe_unretained unsafeReference; unsafe 引用 和weak引用类似,但是他在目标对象为...和class extension不同,associated reference 不影响原始class定义和实现,所以说即便没有原始数据访问权限,也可以使用。...意思是当你在运行时创建一个实例时,你会得到一个具体子类来存储提供值,就当那个对象是NSNumber子类就好。...命名最好用名词,以表示所指,例如:NSWindow, CAAnimation等 如果method需要一个或多个参数,方法名需要暗示出每一个参数,比如: subStringFromIndex: writeToUrl...工厂类方法在创建时应当以类名字作为开头(无前缀),除非类子类存在相同工厂方法了。例如 [NSMutableArray array]; 只要见到mutable就是深拷贝。

    65630

    MYSQL 8 metadata开始到如何获得语句由于获取锁失败错误

    p.time and i.trx_mysql_thread_id not in (connection_id(),p.id); 通过这个方式可以将长时间等待metadata lock 不工作事务数据库中找出来...那么下面有一个问题,如果一个表锁定解锁顺序是如何,当我们针对一个表进行了 X锁加持,后面我们先进行了一个插入操作,然后在进行对表rename操作, 此时真正顺序应该是 1 X 锁定标...,用户prepare状态会被保持直到XA_COMMIT 或者 XA_ROLLBACK 除了这个问题以外,就是关于如何发现曾经MYSQL 发生过错误,一般情况MYSQL 5.X我们都是去找到ERROR...LOG ,里面去找寻可能发生信息,但是MYSQL 8 我们在performance_schema 中已经有了 events_errors 系列,这些表可以让你各个层面来了解MYSQL 在最近都发生过什么错误...; 以上这个表,主要是访问数据库用户角度来出发,查看这个用户曾经发生过什么样错误,我们可以改写一下这个查询语句,来更精确这个账号发生过什么错误进行判断。

    1.9K30

    如何使用Python嵌套结构JSON进行遍历获取链接并下载文件

    JSON(JavaScript Object Notation)是一种基于JavaScript语言轻量级数据交换格式,它用键值方式来表示各种数据类型,包括字符串、数字、布尔值、空值、数组和对象。...遍历JSON有很多好处: ● 提取所需信息:我们可以嵌套结构JSON中获取特定信息,比如Alice喜欢什么书或Bob会不会跳舞等。...下面通过一段代码演示如何遍历JSON,提取所有的网站链接,并zip文件使用爬虫代理IP下载: # 导入需要模块 import json import requests # 定义爬虫代理加强版用户名...说明是一个压缩文件 if value.endswith(".zip"): # 使用requests模块和爬虫代理加强版发送请求,获取响应内容...extract_and_download_links(element) # 调用函数处理json数据 extract_and_download_links(data) 总之,嵌套结构

    10.8K30

    OC学习7——类别、扩展和协议

    @end 类别名命名很随意,我们自己取定就可以,一般用于描述增加部分功能 通过类别为制定类添加新方法之后,这个新方法不仅会影响到该类,还会影响到该类所有子类,每个子类都会获得类别扩展方法。...如果将一个较大类进行分模块设计,使用类别是一个不错选择。例如NSWindow类就采用这种设计思想,具体可以在xcode上查看NSWindow.h文件。...在OC中,除了通过NSObject类performSelector()来执行动态调用从而实现调用私有方法之外,我们还可以通过使用类别来定义前向引用(其实就是通过类别在接口部分补充定义之前未定义私有方法...),从而实现私有方法调用。...但是在用法上,类别通常是有单独.h和.m文件,而扩展则用于临时某一个类接口进行扩展,类实现部分同时实现类接口部分和扩展中定义方法。

    67960
    领券