NSMenuItem 中的 NSProgressIndicator 未在第二个显示器上更新

2023-12-03

我有一个NSMenu附于一个NSStatusItem(菜单栏应用程序)。下载文件时,我想在此菜单的一个项目中显示 NSProgressIndicator 。我创建了一个NSViewController此进度指示器的子类具有以下属性:

@property NSUInteger current; // Bound to NSProgressIndicator value
@property NSString *status;   // Bound to a NSTextField value
@property NSUInteger total;   // Bound to NSProgressIndicator max value

需要时,我使用以下代码开始下载文件,该代码在NSRunLoopCommonModes这样委托方法也会被调用NSMenu显示(运行于NSEventTrackingRunLoopMode):

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
[connection start];

In the didReceiveData委托方法然后我设置我的属性NSViewController子类:

progressViewController.current = receivedData.length;
progressViewController.status = @"Downloading...";
progressViewController.total = expectedBytes;

如果我将属性绑定到标签,这非常有用,但是NSProgressIndicator仅当我打开菜单时更新before连接已启动,在下载完成之前请勿再次关闭连接。但如果我之后打开它,进度指示器不会更新。它显示了我打开菜单时属性的值,但该值不会更新。进度指示器也不会显示动画。注意标签do work...

我尝试手动调用setNeedsDisplay with YES并打电话display当我更改值时,自定义视图和进度指示器上都会出现 om ,但这不起作用。唯一修复进度指示器的方法是调用[progress setHidden:YES]; [progress setHidden:NO];快速连续,但这会导致进度指示器闪烁,这当然是一个糟糕的解决方案。

我究竟做错了什么?我怎样才能解决这个问题NSProgressIndicator?


我遇到了同样的问题,这个答案解决了我的问题:https://stackoverflow.com/a/4692194/406677

迅速:

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

NSMenuItem 中的 NSProgressIndicator 未在第二个显示器上更新 的相关文章

  • 如何在 Swift 中调用 Objective-C 实例类型方法?

    我有一个 Objective C 类 如下所示 interface CustomObjectHavingData NSObject property nonatomic strong NSData objWithData instancet
  • 删除 UINavigationBar 下的 1px 边框 - 不起作用

    IBOutlet var navBar UINavigationBar self navBar setBackgroundImage UIImage forBarMetrics UIBarMetrics Default self navBa
  • 如何在 xcode 中使用相同的 nib 文件创建多个窗口

    我有一个使用表格视图作为界面的 iPhone 应用程序 每次用户点击其中一个表格单元格时 我想向用户显示另一个窗口 然而 我推入导航控制器的窗口的用户界面非常相似 因此 我决定制作一个 通用 nib 文件 以便在该通用 nib 文件的文件所
  • NSView 中 CALayers 的简单示例

    我正在尝试将多个 CALayer 添加到 NSView 但显示时我的视图仍然为空 这是我的代码 id initWithFrame NSRect frame self super initWithFrame frame if self sel
  • 在 iOS4 中视图控制器即将弹出时收到通知

    这个问题以前有人问过 但我能找到的答案是 2009 年的 不适合我的问题 让我重申一下这个问题 我有一个UINavigationController产生并推动许多不同的UIViewControllers 入栈 其中之一涉及一些核心数据操作
  • 管理一堆具有依赖关系的 NSOperation

    我正在开发一个创建内容并将其发送到现有后端的应用程序 内容是标题 图片和位置 没有什么花哨 后端有点复杂 所以这是我必须做的 让用户拍照 输入标题并授权地图使用其位置 为帖子生成唯一标识符 在后台创建帖子 上传图片 刷新用户界面 我使用了几
  • 为什么我的 UIPickerView 崩溃了?

    当我使用 UIPickerView 加载视图时出现以下错误 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 NSCFNumber isEqualToString 无法识别的选择器发送到实例 0x
  • didReceiveRemoteNotification 将用户带到正确的视图

    我有一个聊天应用程序 当发送新消息时 我的服务器会发送推送通知 我遇到的问题是如何将用户带到正确的视图 我正在发送一个channelID在推送通知中 但我如何检索它并将用户带入实际对话 我使用此代码来检测何时单击推送通知 void appl
  • 当前收据无效或不匹配的 ds 人员 ID

    我正在尝试测试 MacOS 的应用内购买 输入测试用户凭据后 App Store 抱怨 当前收据无效或 ds 人员 ID 不匹配 并且购买失败 我尝试了很多方法来解决这个问题 获取 App Store 收据 http www kotanco
  • 在 OS X 中,如何检测当前活动应用程序何时发生变化?

    尝试为 OS X 编写一个应用程序 该应用程序根据当前的应用程序触发行为 它不需要与它交互 它只需要知道何时更改以及更改内容 任何人都可以推荐哪些 API 可用于此目的吗 我的猜测是辅助服务中的某些内容 因为这是大多数应用程序 例如 Bet
  • UITableView行高不变

    我创建了一个自定义单元格 我有一系列字典 对于我需要创建的字典值UILables 每个单元可能包含不同数量的UILabels 所以按照我的习惯UITableViewCell类我就是这样做的 void generateCell BOOL is
  • iOS设备和iPhone模拟器内存​​组织的差异

    我正在尝试使用 Xcode 4 3 3 和 iPhone 5 1 模拟器开发一个应用程序 当我在模拟器上运行这个应用程序时 我没有收到任何警告 并且它运行得很好 但是 当我尝试在 iOS 设备上执行此操作时 我收到一条警告消息 收到内存警告
  • 停止 ARC 在空闲时释放对象

    我在 Objective C 中遇到内存管理问题 我一直在阅读高级内存管理编程指南 https developer apple com library mac documentation Cocoa Conceptual MemoryMgm
  • 如何为整个 iOS 应用程序设置自定义字体而不指定大小

    我正在尝试在整个我的应用程序中应用自定义字体iOS app 我发现我可以使用 UILabel appearance setFont UIFont fontWithName Proxima Nova size 17 0 设置所有的默认字体和大
  • 在 Cocoa Mac OSX 中设置 FirstResponder 时出现问题

    我正在开发一个小应用程序只是为了学习可可 并且我很难将 FirstResponder 设置为某些 NSTextFields 当视图打开时 我希望选择第一个 NSTextField clientNumber 因此我在 loadView 方法末
  • 如何设置 ABPeoplePickerNavigationController 的提示?

    这是我用来调用人员选择器的代码 但提示标签文本不会更改 ABPeoplePickerNavigationController picker ABPeoplePickerNavigationController alloc init pick
  • iOS 中系统日期更改后如何更改带有日期的标签?

    我有一个简单的查询 但不知道该怎么做 这就是我想要实现的目标 1 我有一个带有今天日期的 UILabel 即 29 04 12 2 在午夜 我希望该标签自行更新为 30 04 12 而无需更改视图或按任何内容 这是第2步 我不知道该怎么做
  • 为什么我无法更改 UIBarButtonItem 的标题?

    我想改变UIBarButtonItem s title 但这段代码不起作用 void viewDidLoad self smay void smay AppDelegate apd AppDelegate UIApplication sha
  • UIImageWriteToSavedPhotosAlbum 选择器语法问题

    努力让 UIImageWriteToSavedPhotosAlbum 快速工作https developer apple com library ios documentation UIKit Reference UIKitFunction
  • 如何使用 MonoTouch 在 UIKeyboard 之上添加 UIToolbar?

    我按照 Obj C 中的示例进行操作定制 iPhone 键盘 https stackoverflow com questions 1610542 custom iphone keyboard 1612549 1612549但是 为了在 Wi

随机推荐