问题标签 [nspanel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - NSSavePanel 在优胜美地崩溃
我正在使用NSSavePanel保存图像。
我使用了添加到NSSavePanel的 IKSaveOption。当保存面板尝试为窗口打开工作表时,它会崩溃说 -
*** -[IKSaveOptionsContainer _didChangeHostsAutolayoutEngineTo:]、/SourceCache/AppKit/AppKit-1343.14/Layout.subproj/NSView_Layout.m:577 中的断言失败 - 如果 _didChangeHostsAutolayoutEngineTo:YES,则应将自动调整掩码转换为约束。
我正在关注这段代码:
此代码适用于 Maverick,但不适用于 Yosemite。新的 OS API 中是否有任何布局更改?
objective-c - unlockFocus 调用次数过多
我单击NSButton (openPane
位于我的 OS X 应用程序主窗口上的 l) 以NSPanel (myPanel
使用以下方法显示 a ):
一切都按预期工作,除了我第一次单击按钮(openPanel)时在调试区域中得到以下描述:
Panel的属性选择如下:
我浏览了网络,但找不到任何解释。有谁知道为什么会发生这种情况或如何解决?
macos - NSPanel 导致后续使用 NSOpenPanel 产生异常
我有一个使用 NSOpenPanel 的应用程序,以便用户可以选择多个文件进行导入,并且还有一个典型的首选项面板。首选项面板存储在.xib
文件中。
用户调用首选项面板后会出现问题。在此之前 NSOpenPanel 工作得非常好,所有逻辑都在完成块中执行,并且可以一次又一次地重新调用。但是,一旦用户选择了 Preferences 选项并关闭了该表,那么随后的每次调用-(IBAction)addFiles:
都会导致异常:
它们是这样声明的:
并使用:
例外是:
这一定与我打电话和/或解雇 NSPanel 的方式有关,但我不知道是什么。我真的很感激一些帮助。
objective-c - 无法在菜单项的弹出面板中粘贴文本
我有一个菜单应用程序,我从一个菜单项启动一个 NSPanel:当用户单击菜单项时,我懒惰地实例化一个自定义 NSWindowController(只是第一次),然后我显示它调用 showWindow:
自定义 NSViewController 链接到一个 xib 文件:
这就是我创建它的方式:
问题是,如果我尝试在这两个文本字段之一中粘贴一些文本,它不会粘贴任何内容并且会发出哔哔声。
编辑
我设法恢复了原始菜单(我不得不从另一个项目的 xib 中复制它,因为只有原始菜单被识别),我以这种方式修改了addFeedController访问器:
我还修改了显示窗口的方法:
第一次面板立即出现,没有问题。但是当我关闭面板并尝试第二次启动它时,它不会出现。
cocoa - windowNumbersWithOptions: on Yosemite 无法返回我的应用程序的 NSPanel 窗口
我有一个基于文档的应用程序,有一个主文档窗口和几个显示相关信息的“卫星”NSPanel 窗口。它们不是浮动的,它们可以(并且确实)成为关键,并且似乎与主窗口位于同一层。
我尝试像这样实现显示/隐藏操作:如果面板不可见 - 显示它。如果它是可见的,但不是前面 - 让它在前面。如果它是可见的并且在前面 - 隐藏它。
为此,我需要知道 NSPanel 是否是“最前面的”。遗憾的是没有 NSWindow API 存在。我试图用它windowNumbersWithOptions
来比较我的面板的 z 顺序。
唉,我收到的数组只包含一个数字 - 用于我的主文档窗口。我可以在“窗口”菜单中看到我的面板,我可以单击它们将它们带到前面,我可以关闭它们并使用它们 - 但我无法通过 windowNumbersWithOptions 获取它们的编号:
任何人的想法?
macos - 允许 NSWindow (NSPanel) 在全屏应用程序上方浮动
我正在尝试添加一个小窗口,该窗口可从系统中的任何位置向主应用程序提供“快速输入”。
用户可以按下热键,窗口弹出,并浮动在所有其他窗口之上。
在大多数情况下,这不是什么大问题。我可以将 NSWindow 配置为:
我还可以将其设为带有NSNonactivatingPanelMask
选项集的 NSPanel。
唯一的问题是:即使用户在包含全屏应用程序的空间中,如何才能使窗口在屏幕上弹出?
我知道当应用程序是LSUIElement=true
(在 Dock 中没有位置的应用程序)时这是可能的,但我的不是。
swift - 使用 NSPanel 进行用户输入。不再开放
我想显示一个“NSPanel”供用户输入新文件夹的名称。为什么是 NSPanel?因为它看起来棒极了!它承载一个 TextField 和一个 PushButton 来确认名称。单击时它也应关闭窗口。
它在我的菜单中单击“添加”按钮时显示。当单击“完成”按钮时,它也会关闭NSPanel
。但是当我再次单击“添加”时,它不再显示了。当我通过标题栏中的普通“关闭按钮”关闭它时,也会发生这种情况。所以它与“完成”-PushButton 没有明确的关系。我还测试func windowWillClose(notification: NSNotification)
了在任何一种情况下都不会触发的实现。可能是什么问题呢?此外,它是否每次都需要成为一个“新”窗口?或者我是否正确地将其用于用户输入?我的意思是它只是被实例化一次然后“显示”和“未显示”还是我错了?
所以我做了一个新的 Cocoa-Class - Subclass of NSWindowController
- 并让 xCode 也为它创建一个 .xib。在那个 .xib 中,我“设计”了NSPanel
. 我没有勾选visible at launch
,当单击菜单按钮时,窗口不会出现。我还在我的 Cocoa Class 中连接了一个IBOutlet
for the 。NSPanel
我现在的班级看起来像这样:
在我的主类中,我将其声明为如下变量:
然后override func awakeFromNib()
作为:
以及在单击处理程序中,例如:
现在。当我单击addClicked()
并被调用时,窗口会按预期显示。美好的!我输入一个名称并点击“完成”按钮,它会正确关闭窗口。也很好!但是当我再次单击时,说要添加另一个文件夹,该窗口不再显示。我还以完全相同的方式创建了一个首选项窗口。但是里面有一个 Window 而不是 NSPanel。这完全可以正常工作。
所以我显然混淆了一些东西或忘记了一些东西。会是什么呢?我公开承认这是我第一次在遵循教程之外使用任何类型的窗口。所以我显然没有掌握它的整个概念。我在 Apples Developer Guide 中阅读了有关 windows 的信息,这有点道理。但是......好吧,目前不起作用。我在“滥用”NSPanel
吗?不应该是这种情况,因为它继承自NSWindow
or ?
operating-system - 如何将 NSURL 转换为 CFURLRef
Apple 提供了创建 PDF 文档的示例代码。但它使用 CFURLRef
NSPanel savepanel 给出 NSURL。
我无法将 NSURL 转换为 CFURLRef
输出是
2016-04-22 00:34:26.648 XXX 分析[12242:813106] CFURLRef AnalysisReport.pdf -- file:///Users/xxxxxx/Library/Containers/com.xxxxxx.xxxnalysis/Data/
转换我找到的代码
输出是
2016-04-22 00:37:20.494 XXX 分析[12325:816505] NSURL 文件:///Users/xxxxxx/Documents/xxxnalysis.pdf
最后 PDF 文件被保存,但是当 NSPanel 关闭时程序崩溃。
swift - 单击时 NSSavePanel 移动位置
我的 NSSavePanel 行为异常。每当我单击它(通常允许您拖动窗口的任何区域)时,它都会在屏幕上向下移动几个像素。仅当我单击工具栏的大空白区域等空白区域时才会发生这种情况。
以下是相关代码:
为什么会发生这种情况,我该如何解决?对于奖励积分,NSSavePanel 在出现时不会成为活动窗口。如果有人也知道如何解决这个问题,将不胜感激。