NSStatusBar 中的 NSDatePicker NSSMenuItem 未接收输入

2023-12-26

不久前,我写了一个简单的日历菜单栏小部件,名为Day-O http://shauninman.com/archive/2011/10/20/day_o_mac_menu_bar_clock。日历使用嵌套在添加到 NSStatusItem 的 NSMenu 中的 NSMenuItem 内的 NSView 内的库存 NSDatePicker。该应用程序的activationPolicy为.accessory(最初通过 plist 的“应用程序是代理”布尔值设置)。在某个时刻(也许是 El Capitan 更新?),日历停止响应输入。当应用程序首次启动时,您可以单击状态栏项目来展开菜单并与日历交互,它会按预期响应用户输入。但是,一旦应用程序失去初始焦点,日历就会停止响应输入。

我想我已经将问题归结为应用程序在最初退出活动后未激活。问题是,如果我尝试在单击菜单栏项时手动激活应用程序(使用NSApp.activate(ignoringOtherApps:true))菜单(您刚刚打开的)被关闭。

我还尝试告诉窗口使 NSDatePicker 成为第一响应者,但这似乎也没有任何效果。

当状态栏应用程序不是活动应用程序时,如何让菜单项中的 NSDatePicker 接受用户输入?


Edit:说明问题的最简单代码(将其添加到新 macOS Cocoa 应用程序中的 AppDelegate):

let statusItem = NSStatusBar.system().statusItem(withLength:NSVariableStatusItemLength)
func applicationDidFinishLaunching(_ aNotification: Notification) {
    NSApp.setActivationPolicy(.accessory)

    statusItem.button?.title = "Calendar"

    let menu = NSMenu()
    let item = NSMenuItem()
    let picker = NSDatePicker(frame: NSRect(x: 0, y: 0, width: 140, height: 148))
    picker.datePickerStyle = .clockAndCalendarDatePickerStyle

    item.view = picker
    menu.addItem(item)

    statusItem.menu = menu
}

启动应用程序,单击菜单项,然后单击日历周围。然后单击另一个应用程序,然后再次单击返回菜单项。日历不再响应点击。


您的 NSDatePicker 需要将“acceptsFirstMouse”返回为 true,这是只读的,因此您将在子类中执行此操作。

在运行您提供的代码的测试项目中工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSStatusBar 中的 NSDatePicker NSSMenuItem 未接收输入 的相关文章

  • CSV 解析 - Swift 4

    我正在尝试解析 CSV 但遇到一些问题 下面是我用来解析 CSV 的代码 let fileURL Bundle main url forResource test application data Sheet 1 withExtension
  • 动态增加UITableViewCell中UILabel的高度?

    我有一个 UITableView 其中显示一个自定义单元格 我的单元格有两个标签和一个视图 如下图所示 我已经像这样给出了左视图的约束 项目标签限制 中心视图约束 右视图的约束 I am using a bean class to stor
  • excel 2010刷新BackgroundQuery中运行时错误1004

    我正在尝试用 vba 编写一个脚本 用于将多个文本文件导入 Excel 一张纸 然后将它们绘制在一张图表上 我面临一个问题刷新后台查询命令并出现 1004 运行时错误 我怎样才能解决它 谢谢 埃亚勒 这是我的代码 Sub fring1 Di
  • 调整 SKShapeNode 的大小

    如何调整 SKShapeNode 的大小 到目前为止我尝试过的 调整框架大小 box frame width 10 给出错误Cannot assign to the result of this expression SKAction le
  • 在 Swift 中获取 UIImage 的主颜色

    我正在尝试在 Swift 中获取 UIImage 的主颜色 并尝试移植这段代码 https stackoverflow com questions 13694618 objective c getting least used and mo
  • 如何从 GCD (DispatchQueue) 转换为 Swift async/await?

    我正在关注斯坦福大学的 CS193p 开发 iOS 应用程序在线课程 它使用 Grand Central Dispatch GCD API 来演示多线程 但他们指出 自 WWDC 2021 起 GCD 已大部分被 Swift 新的内置异步
  • Swift - 本地通知不会被触发

    我正在 Swift 3 中编码 我只是想发送通知now没有任何延迟或间隔 然而 通知永远不会被触发 这是我的代码 视图控制器代码 import UserNotifications class HomeViewController UIVie
  • 如何将导航栏大标题转换为多行,居中对齐

    我正在尝试设计具有多行居中大标题文本的视图控制器 就像苹果的 Ask Siri Settings gt General gt Keyboards gt About Ask Siri Dictation and Privacy 我可以使用以下
  • Swift 中的“funcobserveValueForKeyPath(keyPath:NSString,object:AnyObject,change:NSDictionary,context:Void)”问题

    我已经为 AVPlayer 添加了一个观察者 如下所示 self audioPlayer addObserver self forKeyPath currentItem status options NSKeyValueObservingO
  • 如何在 SwiftUI 中将阴影应用于内部视图?

    我在周围添加了阴影VStack其中包含我的两个文本字段和一个提交按钮 然而 阴影也被应用到了文本框内的两个文本字段 VStack 我在这里缺少什么导致这种情况发生吗 我尝试添加shadow radius 0 在文本字段上 但它不会改变任何内
  • 确定 SceneKit 中 SKVideoNode 的视频大小/长宽比

    如何从 AVPlayer 获取视频的视频大小来设置节点的几何大小 例如 我有一个具有宽度和高度的 SCNPlane let planeGeo SCNPlane width 5 height 5 所以现在我实例化我的视频播放器 let vid
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 从“NSPercientStoreResult”转换为不相关类型“Entity”总是失败

    我正在创建一个小应用程序来学习 CoreData 中的多对多关系 但是 使用下面的代码 从 NSFetchResult 到实体类 Groepering 的转换出现错误 与我的项目相比 我在互联网上找到的示例没有看到任何差异 为什么转换仍然失
  • 当我输入字符时,SwiftUI 中的 TextField 失去焦点

    当我在文本字段中输入字符时遇到问题 在练习集视图 我必须重新单击文本框才能输入另一个字符 如果我从文本字段中删除绑定 我可以流畅地输入文本 我认为这与我的演讲者班级和更新集函数重新创建一个集合实例 因为我必须替换数组中两层深处的一些值 Co
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 作为!与 Swift 中 Xcode 6.3 中的 as 运算符对比

    Xcode 6 3 使 Swift 发生了很大变化 我必须更换每个应用程序中的数十个位置as gt as 为什么 现在有什么规则 在 Swift 1 2 之前 as运算符可用于执行两种不同类型的转换 具体取决于要转换的表达式的类型及其要转换
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导

随机推荐

  • 使用 OpenMP 并行化 while 循环

    我有一个非常大的数据文件 这个数据文件中的每条记录有4行 我编写了一个非常简单的 C 程序来分析这种类型的文件并打印出一些有用的信息 该程序的基本思想是这样的 int main char buffer BUFFER SIZE while f
  • JPA onetoMany/ManytoOne 持续存在 - 违反完整性约束 - 找不到父键

    我的映射文件 相关数据 Parent Entity Table name ATTRIBUTE NAME uniqueConstraints UniqueConstraint columnNames NAME TEXT SequenceGen
  • 使用 Laravel Passport oauth/token 发送更多数据

    所以 我正在使用 Laravel Passport 到目前为止一切正常 但是 我想对护照代码进行一些小的更改 好吧 我希望不在供应商文件夹中 一旦我会要求用户更改其密码 以防他正在进行第一次登录 所以 我需要的是两件事 我相信 1 如何在
  • mysql 查询优化

    我的 x 表中有大约 总共 1 049 906 个 查询花费了 0 0005 秒 如果我只是检索尝试检索特定字段记录 花了不到6分钟 这是我的查询 SELECT CUSTOMER CODE FROM X TBL 客户代码 gt 唯一 上述查
  • 如何配置 Express 响应对象以自动向 JSON 添加属性?

    我有一个对象 var obj stuff stuff 在 Express 中 我将其发送给客户端 如下所示 res json obj 有没有办法配置响应对象自动将属性添加到它生成的 json 中 例如 输出 status ok data s
  • PHP 无需 cURL 即可获取 http 标头响应代码

    我编写了一个类来检测 cURL 是否可用 如果可用 则使用 cURL 执行 GET POST DELETE 在我使用的 cURL 版本中curl getinfo curl CURLINFO HTTP CODE 获取 HTTP 代码 如果 c
  • 监控传出互联网流量

    有没有办法以编程方式监控互联网流量 我想记录用户在互联网上访问的页面 这可以通过 NET 代码实现吗 是否有可用于检索数据的第 3 方 NET 组件 有关互联网流量的信息必须存储到数据库中 因此我无法使用 IE 的插件或其他东西 我们还希望
  • Python 3:从元组列表中删除空元组

    我有一个元组列表 内容如下 gt gt gt myList c e ca ea d do dog ear eat cat car dogs cars done eats cats ears don 我希望它是这样读的 gt gt gt my
  • 标准输出未正确传递?

    特殊的问题 由于某种原因 标准输出中的值无法被正确识别 我想做的是 grep 正在侦听的端口的值并尝试匹配 如果定义的端口存在 即 被监听产生一条消息 如果不存在 则产生另一条消息 name check prometheus status
  • 搜索并替换为 ruby​​ 正则表达式

    我的 MySQL 列中有一个包含 HTML 的文本 blob 字段 我必须更改一些标记 所以我想我会在 ruby 脚本中完成它 Ruby 在这里无关紧要 但很高兴看到它的答案 标记如下所示 h5 foo h5 table tbody tbo
  • 在 C++ 中忽略 std::cin 上的 EOF

    我有一个实现交互式 shell 的应用程序 类似于 Python 控制台 irb 的工作方式 现在的问题是 如果用户不小心点击了 DEOF 已发出 我的getline 调用返回一个空字符串 我将其视为 无输入 并再次显示提示 这会导致打印提
  • 从 Google Scholar 搜索结果中抓取和解析引文信息

    我有大约 20000 篇文章标题的列表 我想scrape他们来自谷歌学术的引用计数 我是 BeautifulSoup 库的新手 我有这个代码 import requests from bs4 import BeautifulSoup que
  • 接口中的只读和只写自动属性

    我读过自动实现的属性不能只读或只写 它们只能读写 然而 在学习界面时我遇到了foll 代码 它创建只读 只写和读写类型的自动属性 这是可以接受的吗 public interface IPointy A read write property
  • img = Image.open(fp) AttributeError: 类 Image 没有属性 'open'

    我想把图片做成PDF文件 我的代码如下 import sys import xlrd from PIL import Image import ImageEnhance from reportlab platypus import from
  • 如何确定 VS Code 使用的是哪个格式化程序?

    如果您安装了多个扩展 如何确定文档上正在运行哪个格式化程序 例如 我有几个可以格式化 HTML 的 HTML 扩展 但我不确定哪个扩展实际上正在格式化 或者是否有多个扩展 我什至不确定哪些扩展可能有助于诚实地格式化 最近 HTML 和 CS
  • IPN Paypal“官方”示例代码不起作用

    我有一个问题 我想他们还发现了很多其他问题 我正在尝试将 PayPal 支付系统集成到我的网站中 但 IPN 存在一些问题 我尝试了这段代码 在 github Paypal 上找到
  • rake db:seed 生成 ArgumentError: 缺少关键字: from, to

    我有一个数据库来种子来测试我的代码 当我跑步时rake db seed要为数据库播种 我收到以下错误 我预计控制台是空白的 这意味着数据已被播种 Error 19 19 41 master simple partials lab nouko
  • alembic + sqlalchemy 多个数据库

    在 Flask 中 我设置了 SQLAlchemy 以使用多个数据库 这些数据库是根据请求选择的 如中所述https quanttype net posts 2016 03 15 flask sqlalchemy and multitena
  • 使用 Debian 将 Google Cloud Filestore 挂载到 Docker 容器内

    我想将 Cloud Filestore 安装在 Debian 的 docker 容器内 当我尝试安装它时 我得到 mount nfs timeout set for Wed Feb 27 12 35 07 2019 mount nfs tr
  • NSStatusBar 中的 NSDatePicker NSSMenuItem 未接收输入

    不久前 我写了一个简单的日历菜单栏小部件 名为Day O http shauninman com archive 2011 10 20 day o mac menu bar clock 日历使用嵌套在添加到 NSStatusItem 的 N