草庐IT

nsstatusitem左键单击

程序员大本营 2024-04-20 原文

首先:我是新来的迅速发展。
我在用着 这个 当我单击顶部栏图标时,会出现一个弹出窗口的教程。

因此,我的AppDelehgate代码是:

func applicationDidFinishLaunching(_ aNotification: Notification){    print("START !");    if let button = statusItem.button {        button.image = NSImage(named: "logo");        button.action = Selector(("togglePopover:"));        //button.target = self;    }    popover.contentViewController = QuotesViewController(nibName: "QuotesViewController", bundle: nil);}func togglePopover(envoyeur: AnyObject?){    print("TOGGLE !");    if popover.isShown{        closePopover(sender: envoyeur)    } else {        showPopover(sender: envoyeur)    }}

但是从来没有“切换!”出现文字,事件不起作用。
我放了“ button.target = self;”发表评论,因为如果我不这样做,它会崩溃。该活动似乎被触发了,但我有一个错误:

START !2017-06-08 15:55:29.116275+0200 MyWallpaper[7590:407660] -[MyWallpaper.AppDelegate togglePopover:]: unrecognized selector sent to instance 0x61000002a5202017-06-08 15:55:29.122570+0200 MyWallpaper[7590:407660] [General] -[MyWallpaper.AppDelegate togglePopover:]: unrecognized selector sent to instance 0x61000002a5202017-06-08 15:55:29.125822+0200 MyWallpaper[7590:407660] [General] (    0   CoreFoundation                      0x00007fffb36f32cb __exceptionPreprocess + 171    1   libobjc.A.dylib                     0x00007fffc84fe48d objc_exception_throw + 48    2   CoreFoundation                      0x00007fffb3774f04 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132    3   CoreFoundation                      0x00007fffb3665755 ___forwarding___ + 1061    4   CoreFoundation                      0x00007fffb36652a8 _CF_forwarding_prep_0 + 120    5   libsystem_trace.dylib               0x00007fffc90153a7 _os_activity_initiate_impl + 53    6   AppKit                              0x00007fffb18e1721 -[NSApplication(NSResponder) sendAction:to:from:] + 456    7   AppKit                              0x00007fffb13c5cc4 -[NSControl sendAction:to:] + 86    8   AppKit                              0x00007fffb18ceff7 -[NSStatusBarButtonCell _sendActionFrom:] + 155    9   libsystem_trace.dylib               0x00007fffc90153a7 _os_activity_initiate_impl + 53    10  AppKit                              0x00007fffb13c4426 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2481    11  AppKit                              0x00007fffb1408272 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 798    12  AppKit                              0x00007fffb18cea1f -[NSStatusBarButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 327    13  AppKit                              0x00007fffb13c2ddb -[NSControl mouseDown:] + 832    14  AppKit                              0x00007fffb1a5d24f -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 6341    15  AppKit                              0x00007fffb1a59a6c -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 1942    16  AppKit                              0x00007fffb1a58f0a -[NSWindow(NSEventRouting) sendEvent:] + 541    17  AppKit                              0x00007fffb18d26d1 -[NSStatusBarWindow sendEvent:] + 581    18  AppKit                              0x00007fffb18dd681 -[NSApplication(NSEvent) sendEvent:] + 1145    19  AppKit                              0x00007fffb1158427 -[NSApplication run] + 1002    20  AppKit                              0x00007fffb1122e0e NSApplicationMain + 1237    21  MyWallpaper                         0x00000001000039ad main + 13    22  libdyld.dylib                       0x00007fffc8de3235 start + 1    23  ???                                 0x0000000000000003 0x0 + 3)

看答案

使用Swift #selector 句法

button.action = #selector(togglePopover(_:)) // or just #selector(togglePopover)

有关nsstatusitem左键单击的更多相关文章

  1. ruby-on-rails - 如何从按钮或链接单击的 View 调用 Rails 方法 - 2

    基本上,我试图在用户单击链接(或按钮或某种类型的交互元素)时执行Rails方法。我试着把它放在View中:但这似乎没有用。它最终只是在用户甚至没有点击“添加”链接的情况下调用该函数。我也用link_to试过了,但也没用。我开始认为没有一种干净的方法可以做到这一点。无论如何,感谢您的帮助。附言。我在ApplicationController中定义了该方法,它是一个辅助方法。 最佳答案 View和Controller是相互独立的。为了使链接在Controller内执行函数调用,您需要对应用程序中的端点执行ajax调用。该路由应调用rub

  2. ruby - 在 Mechanize 中使用 JavaScript 单击链接 - 2

    我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan

  3. ruby - 按 Enter 键而不是用鞋子单击按钮(Ruby) - 2

    正如标题所暗示的那样,我只是在寻找一种无需单击即可按下Shoes中的按钮的方法。我已经搜索了论坛,但不幸的是找不到任何东西。谢谢 最佳答案 这在Windows下的红色鞋子中不起作用,因为Windows控件窃取了所有事件。不过,我设法在window下穿着绿鞋工作。举个例子['green_shoes'].each(&method(:require))Shoes.app{e=edit_linebutton("Clickme!"){alert("Youclickedme.")}keypress{|k|alert("YoupressedEnt

  4. ruby - 如何使用 Mechanize 保存通过单击按钮下载的文件 - 2

    我正在尝试使用Mechanize来模拟点击网页上的按钮,然后会在浏览器中启动文件下载。这是我的代码片段form=page.forms.first#=>Mechanize::Formform=agent.page.form_with(:name=>"aspnetForm")button=form.button_with(:value=>"GPXfile")ppbuttonagent.submit(form,button)pp按钮的输出是这样显示的,这意味着它是右键:#但是在发出“agent.submit(form,button)”之后,我怎样才能让Mechanize检索单击该按钮时将发送

  5. ruby-on-rails - 在 rails 中单击提交打开一个新窗口 - 2

    您好,我想使用ruby​​onrails在单击提交按钮时打开新窗口,这是我的代码'btnbtn-mdbtn-success'do%>CreateNewWindow我试过:target=>"_blank"提交,但它不起作用,请帮助我 最佳答案 使用formtarget="_blank"。'btnbtn-mdbtn-success',:formtarget=>"_blank"do%>CreateNewWindow此链接将为您提供帮助http://www.w3schools.com/tags/att_button_formtarget.a

  6. ruby-on-rails - Ruby on Rails : allow the user to enter a new information, 或单击下拉菜单选择现有信息 - 2

    这里是新的ROR程序员。我正在尝试构建一个Web应用程序,该应用程序允许用户填写表单,他们在其中输入公司信息,然后通过单击提交,将输入添加到数据库中。目前,如果用户要创建一个新条目,他们会看到几个字段,例如“公司名称”。有一个空白框供他们输入新公司,旁边有一个下拉菜单,用户可以使用该菜单查看数据库中的现有公司。"SelectaCompany")%>我正在寻找一种允许用户输入新公司的方法,或者单击下拉菜单并选择现有公司。目前:如果未在文本框中输入任何内容且未从下拉列表中选择任何选项,则将其保存为空白。如果输入了一些内容,但没有选择任何选项,它将被保存为空白。但是,如果输入内容并从下拉列表

  7. ruby - Capybara - 按类名单击元素 - 2

    对于一个看似简单的问题,我已经思考了很长时间,但似乎无法在Google上找到任何内容。我有这个按钮,我需要点击它没有id但包含一个类CASESTUDIES(2)我试过使用click_on,我现在知道它只适用于链接和按钮,所以当然不会起作用。这是我目前所拥有的:When(/^Ifiltertheresultstoonlyseecasestudies$/)doclick_on('filter-case-studies')end我也尝试过page.find('filter-case-studies').click,这也行不通。page.find(:class,'filter-case-stu

  8. ruby - 使用 Ruby Mechanize 单击按钮 - 2

    我有一个特别困难的表单,我试图单击搜索按钮但似乎无法执行。这是页面源代码中的表单代码:我正在尝试执行标准的Mechanize点击操作:login_page=agent.click(homepage.link_with(:text=>"Search"))这是因为按钮使用了javascript吗?如果是这样,有什么建议吗? 最佳答案 我也为此苦苦挣扎,尤其是因为我的表单有多个按钮。提交表单的方式有多种(许多使用“form_with”block),但这对我有帮助:#gettheformform=agent.page.form_with(:

  9. 鼠标单击ClistBox的非项目区域 - 2

    我想知道用户何时在clistbox中单击,但在任何项目之外。我希望在包含的对话框中收到一些通知,以便我可以处理点以确定是否在项目内部通过mylistbox.ItemFromPoint(flags,outside)。但是,在列表框中的单击似乎并没有导致此类事件。我应该在父母对话框中寻找什么活动,以及需要设置什么才能启用?我真的不在乎是点击还是只是鼠标。我的目的是,如果用户单击任何项​​目,请取消选择所有项目,mylistbox.SetCurSel(-1).附录:这是按照@mercurydime建议实现的类的完整代码。(标题)#ifndefINCLUDE_CMYLISTBOX_H#defineIN

  10. ruby-on-rails - RubyMine - 关闭在 "empty"行中间单击的能力 - 2

    我最近开始学习Ruby,到目前为止我非常喜欢它。我选择使用的IDE是RubyMine(因为它类似于PhpStorm)。然而,有一个功能让我非常恼火,我找不到配置。我想摆脱的是:在编码时,我可以在一行的中间单击(我没有放置空格),光标会跳到那里并允许我在那里输入(就好像我在开始之前已经将代码缩进了很长一段距离)写)。Theresultmightlooksomethinglikethis.如果我点击行的中间并开始输入。有谁知道如何关闭此功能?如果我的描述太模糊,请告诉我。提前致谢! 最佳答案 您需要禁用设置|编辑|虚拟空间|允许在行尾放

随机推荐