问题标签 [nspopover]

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 回答
3073 浏览

cocoa - 弹出框 NSStatusItem

我正在玩一个想法,基本上我想要一个带有 NSPopoverController 的 NSStatusItem。我阅读了人们遇到的所有问题,但我只是想尝试一下。现在有干净的方法吗?我见过的所有版本都至少有 1 年的历史并且 suuuuper hacky。

到目前为止,这是我的方法,但是如果我在状态栏中单击我的应用程序,则没有任何反应...

任何想法如何让它运行?

谢谢

0 投票
0 回答
204 浏览

macos - 如何从 NSTableViewCell 显示 NSPopup

我正在 Xcode5 中为 OSX 开发应用程序

我想在用户结束编辑 tableview 单元格后显示一个弹出框我在做什么如下:

当我运行它时,我收到以下错误:

它不能正常工作,我暂时在我的 NSTableView 顶部添加了一个隐藏按钮,为它设置了一个 IBOutlet(popoverButton)并遵循 IBAction:

然后我在我的 NSTableView 方法上替换了最后一句话:

它可以工作,但在 NSButton 的位置显示我的弹出窗口,如下所示:

在此处输入图像描述

我想在我的 tableview 单元格的位置显示它,怎么做???

0 投票
1 回答
524 浏览

objective-c - 工具栏中带有 NSPopoverBehaviorSemitransient 的 NSPopover 未关闭

我目前在NSToolbar(Mac OS X)中有三个按钮。NSPopover相对于发送动作的按钮,每个按钮都会触发不同的显示。那部分工作正常。两个弹出框使用NSPopoverBehaviorTransient,一个使用NSPopoverBehaviorSemitransient(因为我特别希望它在应用程序之间切换或移动窗口时保持打开状态)。

当其中一个瞬态弹出框打开并且我单击弹出框本身之外的任何位置时,弹出框会正确关闭。半瞬态弹出框也是如此(除了切换应用程序和移动窗口),除非我单击另一个显示另一个弹出框的工具栏按钮。在这种情况下,现在两个弹出框同时在屏幕上可见。(我怀疑这是一个错误。)

同时在屏幕上显示弹出窗口的屏幕截图。

如果按下另一个工具栏按钮,我已经尝试研究可以自己启动关闭的方法。我想出的唯一选择是在文档级别跟踪当前打开的弹出框,并确保在打开另一个弹出框之前手动关闭它。我宁愿半瞬态弹出框能够自行关闭。

有什么我忽略的吗?谢谢。

0 投票
1 回答
1070 浏览

objective-c - 如何使用 OS X 10.10 情节提要在弹出框上指定箭头的原点

我在 OS X 10.10 应用程序中玩故事板。我有一个NSTableView,当您单击特定行时,会打开一个 segue,该 segue 会转到包含NSViewController.

你如何指定NSPoint弹出框箭头的原点?现在,它只是指向NSTableView中间。我以为我可以在 中做到这一点prepareForSegue,但我似乎无法弄清楚。 prepareForSegue似乎不理解NSViewController包含在NSPopover

有任何想法吗?

0 投票
0 回答
647 浏览

objective-c - NSPopover 视图控制器中的 NSButtons

我以前为 Mac 开发过,但这是我第一次尝试使用 NSPopover 控件,这似乎是一个好主意,但到目前为止给我带来了无穷无尽的问题。该应用程序是一个菜单栏应用程序。我在 NSPopover 的视图控制器中有两个 NSButton 对象,NSPopover 是在 NSButton 的另一个子类中以编程方式创建的,与显示它的按钮相同。这个 NSButton 显示的相对于它与 NSMenuItem 中的一些其他按钮一起包含

包含两个按钮的弹出窗口显示良好(见下面的屏幕截图),但是,尽管用焦点环突出显示“是”按钮,但两个按钮都没有响应点击事件,它们甚至不像我那样以图形方式点击期待他们。

在此处输入图像描述

这是创建 NSPopover 并将其放置在屏幕上的代码:

有没有人对此有任何解决方案/解决方法?

提前致谢 :)

Ps 这是我关于 SO 的第一个问题,所以我希望我已经提供了足够的信息,但我会根据需要提供更多详细信息。

0 投票
1 回答
493 浏览

python - PyobjC:NSPopover 上的 NSTextField

我在这里提到了同样的问题:即使设置了可编辑行为,也无法在 NSPopover 上编辑 NSTextField。解决方案似乎是覆盖NSWindow的canBecomeKeyWindow。我试图在 PyObjC 中做同样的事情,但我得到一个错误Python signature doesn't match implied objective-C signature

在以下代码中,如果我注释掉 canBecomeKeyWindow_(),则应用程序按预期运行,但我无法单击和编辑文本字段。

0 投票
2 回答
559 浏览

objective-c - 应用程序启动时显示 NSPopover

我正在使用 Pyobjc 创建一个 NSStatusItem。单击它时,我将显示一个 NSPopOver。这工作正常。但是,我的要求是在应用程序启动后立即显示弹出框,而无需用户进行任何操作。直接在 finishLaunching 中调用回调不起作用。有什么办法可以做到这一点?即使可以模拟 NSStatusView 上的点击也足够了。

0 投票
4 回答
5840 浏览

macos - 如何以编程方式关闭 NSPopover

我想知道如何以编程方式关闭 NSPopover,而不是通过触摸外部,因为我想将它分配给一个操作(例如 KeyDown Enter Key 或其他快捷方式)

因为我使用快捷方式打开我的 NSPopover,所以按另一个命令关闭会更合乎逻辑

将分享我的代码:

EdiciondeCuentasWC.h (NSWindowController) 我从这里调用我的 NSPopover

我的 NSPopover 的代码在 NSViewController (CambiarTipoCuentaVC) 内部,但在里面我既没有 [self close] 也没有 [self performClose] 从按钮或快捷方式关闭它,任何帮助使其工作我会很感激...

0 投票
1 回答
783 浏览

macos - 动画 NSPopover 实现

有人对NSPopover在日历中实现点赞有什么建议吗?我知道如何实现实际的弹出框,但我具体指的是弹出框的内容,例如,当您单击添加警报时,类似表格的元素似乎会动画并下拉以显示更多数据然后折叠。我想也许可以实现NSOutlineView并隐藏披露三角形或类似的东西。

有没有人有任何建议?我已经发布了我所指的弹出内容类型的图像。

https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/art/wn_popover_2x.png https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/art/wn_popoveraspanel_2x.png

您会注意到,单击任何“添加”字段会启动一个向下滑动类型的动画以显示更多详细信息,然后在移出该字段时折叠。

0 投票
1 回答
424 浏览

objective-c - Cocoa:NSUserNotification 出现在 NSPopover 后面

我不知道从哪里开始尝试解决这个问题,但也许有人可以为我指明正确的方向。我有一个状态项应用程序,单击时会显示一个弹出框,一些用户交互会产生一个 NSUserNotification 来警告/通知更改或错误。但是当通知出现时,它会显示在弹出框的后面,因此如果它们覆盖,用户将无法阅读它所说的内容。

有没有办法强制通知出现在弹出框的前面?喜欢将通知放在前面。

编辑:这是一张图片,显示在用户输入错误后隐藏在弹出框后面的部分通知。我真的不想隐藏弹出框以显示错误通知。

我已经尝试了湖 makeKeyAndOrderFront、activateIgnoringOtherApps、你在窗口上使用的东西的类型,但它们都不适用于 NSUserNotification,所以它不起作用。

编辑 2:我应该注意,为了让弹出框在调用时出现在所有内容的前面,我在弹出框上使用了 activateIgnoringOtherApps 和 becomeFirstResponder,但即使摆脱它仍然会显示弹出框后面的通知。

编辑3:弹出框相对于状态栏中的状态项显示,使用 [[self popover] showRelativeToRect:statusItem.view.bounds ofView:statusItem.view preferredEdge:NSMaxYEdge]; 单击时,状态项调用执行此操作的方法:

}

谢谢您的帮助。