问题标签 [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.

0 投票
2 回答
1379 浏览

cocoa - 在界面生成器中,如何将自定义按钮添加到窗口标题栏?

在我的 OS X 应用程序中,使用 Interface Builder,我有一个如下所示的窗口:

在此处输入图像描述

我想在右侧添加一个按钮,以实现此目的:

在此处输入图像描述

如果这是可能的,我该怎么做?

0 投票
1 回答
357 浏览

objective-c - 为什么我的 NSPanel 没有正常的灰色背景?

我的应用程序在菜单栏中有一个图标。NSPanel当我单击图标时会出现A。但是为什么没有NSPanel像其他灰色背景那样的背景颜色NSWindow呢?我NSPanel的背景看起来像透明的。我NSPanel来自一个.xib文件。我的代码如下:

0 投票
3 回答
6535 浏览

objective-c - 如何在 NSWindowController 中使用关闭按钮停止模式?

当用户单击 NSWindowController 中的红色关闭按钮时,我想停止模式。

在 NSWindowController 中,有“确定”和“取消”按钮。

当我单击红色关闭按钮时,窗口将关闭并且模态不会停止。我找到了windowWillClose:函数。

然而,

即使我单击 OK 按钮,windowWillClose:函数也会被调用并且runModalForWindow:函数总是返回 NSCancelButton。

作为模态的结果,我可以将成员变量添加到myWindowController中。

但我认为会有另一种通用的方法来解决这个问题。

我想采取一种简单的方法。

0 投票
0 回答
182 浏览

objective-c - 当“代理”应用程序在后台启动时 NSPanels 消失

我使用 Cocoa“状态栏”教程 ( http://cocoatutorial.grapewave.com/tag/status-bar/ ) 作为起点,试图为自己构建一个仅显示为 StatusItem 的代理。

这个应用程序没有主 NSWindow 对象,它有三个与之关联的 NSPanel。一个 NSPanel 用作“应用程序首选项”窗口,另外两个只是提示用户使用 OK 按钮输入一小段文本。

首选项面板通过 NSMenuItem 启动,如下所示:

当我从 XCode 内部构建和运行应用程序时,一切似乎都运行良好。但是,当我从 Xcode 外部(例如 Finder)运行应用程序时,这些窗口根本不会出现。

此外,我可以在 XCode 中复制该行为。如果我显示首选项面板,然后单击关闭它(例如,我单击此 Safari 窗口),首选项面板就会消失,再也不会出现。我必须从 XCode 中物理停止应用程序,然后再次运行它才能重新出现首选项面板。

提前感谢任何人的帮助!

0 投票
1 回答
484 浏览

objective-c - NSPanel 有黑色背景,文本不可见

我正在尝试为ScreenSaverView子类显示配置表。经过与 Xcode 的长期斗争,我终于在系统偏好设置中单击“屏幕保护程序选项”时出现配置表(并且选择了我的屏幕保护程序),并且该表的行为正常,但有一个例外:背景为黑色,使文本不可见(见图)。配置表上的黑色背景。

无论工作表是一个NSPanelNSWindow类,以及面板是常规面板、实用程序面板还是 HUD 面板,都会发生这种情况。我似乎唯一能做的就是改变面板的 alpha 值,正如预期的那样,它使一切变得更加透明(但文本仍然不可见)。有趣的是,调用setOpaqueorsetBackgroundColor上的NSPanelorNSWindow似乎没有任何效果。

0 投票
1 回答
7235 浏览

xcode - 如何创建从 NSWindow 模态弹出的 NSPanel(Cocoa 编程)

就像在 NSWindow 中单击按钮后显示的 NSPanel。

我找了很多,但没有简单的例子。谢谢你的帮助。

0 投票
2 回答
184 浏览

macos - 如何从顶部制作它?(可可片)

我已经使用以下方法实现了我的工作表(NSPanel):

}

工作表出现在我的屏幕中间,如何将其附加到主窗口的顶部并使其显示为“向下滑动”效果?

提前致谢。

0 投票
2 回答
627 浏览

objective-c - 用户关闭时如何避免释放 NSPanel

我正在开发一个小而简单的状态菜单应用程序。
有一个菜单,当用户单击它时,应该会出现一个 HUD 窗口(NSPanel)。这就是我显示面板的方式:

这就是我关闭窗口的方式:

这就是事件链:

  1. 当应用程序启动时,我关闭窗口;
  2. 然后用户(就是我:-))点击菜单项并使面板出现;
  3. 然后我点击 x 并关闭面板;
  4. 然后我再次单击菜单项,窗口不再出现。

它不再出现可能是因为它被释放了,而且我放了一个弱存储,否则使用 __unsafe_unretained 它会在第二次启动时崩溃。
所以我猜是否有办法避免在用户点击它时释放窗口。
我尝试过使用强大的存储,但是在第二次启动时我无法再次关闭它,这是一个问题。
有许多菜单状态应用程序能够显示一个窗口,而用户可以“杀死”它,我会做类似的事情。

0 投票
1 回答
191 浏览

objective-c - Cocoa:当 HUD 面板关闭时关闭应用程序

当用户单击面板关闭按钮时,我需要关闭整个应用程序,我尝试过:

但它也会从文件选择器面板关闭应用程序。

先感谢您。L.

0 投票
1 回答
481 浏览

cocoa - 是否可以在 NSPanel 上打开和关闭 NSNonactivatingPanelMask

我知道这个用例是非典型的,但我一直试图找出一种方法来使NSPanel非激活,仅在某些情况下。

如果 anNSPanel被初始化NSNonactivatingPanelMask(或者如果在 Interface Builder 中选中了面板的“Non Activating”属性),那么稍后在代码中更改样式掩码对窗口行为没有影响:

检查styleMask属性显示它NSNonactivatingPanelMask已打开,但单击其标题栏仍会激活应用程序。

反之亦然。在代码中使用掩码进行初始化NSNonactivatingPanelMask并将掩码设置为([panel styleMask] & ~NSNonactivatingPanelMask)稍后对窗口行为没有影响,导致单击标题栏时它不会激活应用程序。

是否有一个简单的解决方法,例如告诉窗口重新解释其样式掩码的方法?如果没有,最合适的选择是什么?