问题标签 [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 投票
1 回答
747 浏览

cocoa - 创建类似于 NSPopOver 的动画

我正在处理在父窗口中显示为子窗口的自定义窗口对象。
对于这个对象,我想创建一个类似于 NSPopover 的动画。

我的第一个想法是创建子窗口的屏幕截图,然后使用核心动画对其进行动画处理,最后显示真实的窗口。

在乞求实施之前,我想知道是否存在更好的方法以及您对我的解决方案的看法。

0 投票
1 回答
3260 浏览

objective-c - 改变 NSPopover 的外观?

我想做一个类似于这个的 NSPopover:

截屏

所以我想覆盖绘图。

不幸的是,我在 Apple 文档中没有找到任何内容。但是,我确实使用类转储找到了以下私有类:

然后我可以子类化_NSPopoverWindow,这也是私有的,并覆盖

+ (Class)frameViewClassForStyleMask:(unsigned long long)arg1;

我不能继承它,因为它是私有的。有没有办法绕过它?

或者还有其他方法吗?

0 投票
2 回答
1757 浏览

objective-c - 在 NSStatusItem 上实现 NSPopover

我目前有一个NSStatusItem这样初始化的状态栏awakeFromNib

NSMenu单击图标时,我会打开一个。单击其中一个选项时,应该NSPopover从状态栏图标打开一个。为此,我有这段代码,它通过 Interface Builder 连接到菜单项:

但是,当我单击应该打开 Popover 的菜单项时,什么也没有发生。有什么特别的原因会导致这种情况吗?据我所知,应该可以做到。

提前致谢。我尽我所能查看了 Stack Overflow,但如果有一个真正重复的问题,请将我链接到它。

仅供参考:statusItem变量是NSStatusItem.

0 投票
2 回答
362 浏览

objective-c - NSPopover 和 NSButton 控件

我创建了一个 StatusBar 应用程序。它使用自定义视图并利用 NSPopover 显示一些控件。我熟悉 NSTextfield 焦点问题。这不会引起任何疼痛。但是我在 NSPopover 中也有一个按钮。此按钮不接收任何操作并且不(视觉上)响应任何点击。有什么建议如何使按钮可聚焦吗?

提前致谢

0 投票
2 回答
269 浏览

sync - 如何将弹出框与滑块按钮一起移动

我有一个用于音量的自定义滑块,我希望滑块的当前值显示在我目前已经拥有的弹出窗口中,见下图。

不幸的是,目前弹出框在滑块中间是静态的。

知道如何使弹出框与滑块按钮一起移动吗?

这是我到目前为止所拥有的:

在此处输入图像描述

0 投票
2 回答
2067 浏览

resize - 调整 nspopover 的大小

我试图通过使用以下方法设置它包含的 NSView 的框架来调整 NSPopover 的大小,然后再显示它:

但是,当我尝试通过调用显示弹出框时:

视图恢复到之前的大小。为什么会这样?还有另一种我应该调整弹出框大小的方法吗?

在此先感谢,本。

0 投票
3 回答
6121 浏览

xcode - 显示后调整 NSPopover 的大小

我有一个 NSPopover,他的内容是 NSView。我创建弹出窗口并添加如下视图:

然后我显示弹出框并设置大小:

此时弹出框是可见的并且其内容视图是正确的。有没有一种方法可以在不关闭并重新显示它的情况下调整弹出框的大小?

0 投票
1 回答
3318 浏览

cocoa - 如何定位 NSPopover

我有一个 OSX 应用程序,它使用 NSViewController 在我的 NSView 中交换进出视图。其中一个视图是 NSOutlineView。我现在希望在用户双击大纲视图中的一行时出现 NSPopover。目前我使用以下方法让弹出框出现:

这使得 NSPopover 出现在应用程序的底部。这可行,但我希望能够让弹出框恰好出现在 NSOutlineView 的单击行下方。我换入换出的每个视图都由 NSViewController 控制,我认为我可以使用 NSViewController 的 view 属性来识别我的视图位置。但是,如果我替换[[NSApp keyWindow] contentView]myViewController.view我收到视图没有窗口并且 NSPopover 崩溃的错误。显然,我遇到了麻烦 1)在 NSView 中找到单击行相对于主窗口的坐标 2)理解为什么我的视图没有窗口。如果有人有可以帮助我理解这些问题的建议,我将不胜感激。

更新 06/02/2013 我仍在为我的问题而苦苦挣扎,但我发现如果我通过我的 MainWindowController (myControlledView) 访问它的属性,我可以获得正确的视图坐标。然后,当我询问视图的原点和帧大小时,我得到了正确的值。我的 VC 将自定义视图加载为 NIB 文件,当我询问加载视图的来源时,我得到 (0,0)。我认为即使我将视图加载为 NIB,视图相对于窗口的位置也会保持不变?我可以将视图原点传递给我的 VC,从而正确设置 NSPopover,但这看起来相当麻烦,我认为 NIB 加载的视图原点可以通过 VC 正确访问。

这导致:My origin: 0.000000 0.000000并且不是我想要的,而这:

结果是正确的来源:My origin: 176.000000 38.000000

显然,我不了解有关视图和窗口的内容。任何帮助都将不胜感激。

感谢您的建议和帮助!干杯,特隆德

0 投票
0 回答
367 浏览

autocomplete - 为 NSTextView 自动填充 NSPopover

我试图弄清楚如何创建一个自动完成的 NSTextView。我试图实现的想法是让 NSPopover 显示可能的用户名列表,如下所示:http ://cl.ly/McZ0 。它的目标是像 Mac 的 Tweetbot 一样运行,你输入的越多,它就越能过滤列表。我已经调查过了

我了解到它们都不适用于我试图做的事情,所以我调查了

我想我必须找到“@”所在的位置并使用“@”之后的字符来过滤列表。我真正坚持的是在 NSTextView 中的单词下方显示 NSPopover。有人对如何实现这一点有任何想法吗?

0 投票
2 回答
2608 浏览

cocoa - 动画自动布局更改与 NSPopover contentSize 更改同时发生

我正在尝试在弹出窗口中重现可导航视图的 iTunes 11 行为。不过,我似乎无法找到一种方法让我的动画在弹出框的contentSize变化发生的同时发生。

我的基本设置是一个自定义视图子类 MyPopoverNavigationView ,它有两个子视图:我希望弹出框在旧视图和新视图之间导航。弹出contentViewController框有一个 MyPopoverNavigationView 实例作为其view. 我这样做:

据我从 Auto Layout WWDC 2012 视频中可以看出,这是推荐的方法,因为约束更改而对视图帧的更改进行动画处理。它可以工作,但动画分两个阶段进行:

  • 首先,弹出框contentSize将更改以适应我要移动到的新视图(该视图变得可见之前,因此它会部分遮盖现有内容)。
  • 其次,视图按照我的预期进行动画处理,从而满足我安装的约束系统。

通过设置一些断点,看起来-layoutSubtreeIfNeeded最终在弹出框上调用了一个名为 的私有方法,该方法在_fromConstraintsSetWindowFrame:我的动画组之外执行弹出框大小动画。我的上下文的持续时间没有受到尊重,并且我的动画在弹出框的大小更改完成之前不会发生。

如何让我的视图与弹出框的大小变化一起动画?