问题标签 [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 回答
197 浏览

objective-c - Should an outlet to a view controller class be weak or stong? OSX app

Here's what i did.

  1. Make a clean OSX project.
  2. went to main.xib and dragged a popover controller. This created 2 visible objects on on interface builder.
  3. I went to the appDelegate.h file and did

    `-@Property (assign) IBOutlet NSViewController *popVC;

  4. Then i went to the applicationDidFinishLaunching: method and did

    popVC = [[NSViewController alloc] init];

Result: I get the following error message:

enter image description here

Shouldnt objects on a nib be weak since it is already owned by the nib?

0 投票
1 回答
354 浏览

cocoa - 基于视图的 NSTableView,每个视图包含 3 个标签,应根据文本调整大小

我需要在 Popover 中创建一个基于视图的 tableview,如下所示:

  • Tableview 应该放在 Popover 中(Popover 高度应该与 tableview 相同)。
  • 每行都应包含一个视图。
  • 每个行视图将包含 3 个标签。
  • 标签应根据其文本高度自动调整大小。
  • 基于 3 个标签高度,单元格行高应调整大小。
  • 根据所有单元格行,tableview 高度应调整大小。
  • 根据 tableview 高度,Popover 应该调整大小。

我以静态格式完成了此操作,但我需要以更动态的格式执行此操作(将来我应该能够使用相同的类和方法添加更多行)。

我面临的主要问题是,我无法计算单元格视图的大小,tableView:heigthOfRow:因为此时我不知道标签的文本。所以我只是在 loadView 本身中创建了 tableview 单元格并保存在数组中,并在 tableview 委托方法中从数组中获取。但我认为这是错误的做法。

注意:在加载视图本身时,将给出 tableview 的所有数据。标签不可编辑。

0 投票
0 回答
197 浏览

macos - 需要有关如何修复 RBLPopover 的建议,以便它可以像 NSPopover 一样动态调整大小

RBLPopover 是来自 Github 的 Guys 制作的 Popover,旨在模仿 NSPopover,但修复了它的一些缺陷,例如 canBecomeKeyWindow。它是他们目前托管在 GitHub 上的 Rebel 框架的一部分。我决定将此弹出框用于我的状态栏应用程序,但现在遇到了问题。NSPopover 能够动态调整它的大小,如果它被显示并且你使用 setContentSize 的话。然后它会自动调整动画到新给定的大小。但是,RBLPopover 并没有这样做。在研究了 RBLPopover 的代码 8 小时后,我无法解决这个问题,原因之一是我对视图如何在内部详细工作的知识滞后。

RBLPopover 的代码可以在这里找到:

https://github.com/github/Rebel/blob/master/Rebel/RBLPopover.m

有人可以给我一个关于如何解决这个问题的提示吗?我不要求代码,只是关于如何实现这一点的一些建议/概念。它的父类中是否缺少某些方法?我不相信 showRelativeToRect:ofView:preferredEdge: 是正确的改变方法。我相信缺少一些更基本的东西,但我不明白。

0 投票
1 回答
1285 浏览

objective-c - 如何使用单独的 viewController 正确设置 NSPopover

我创建了一个非常简单的测试程序。它有一个按钮。单击该按钮会弹出一个NSPopover带有标签的标签。该标签位于一个单独的 xib 文件中,带有自己的NSViewController.

目标是,当我在主屏幕上单击按钮时,弹出窗口将显示viewcontroller. 并且 xib 文件的标签应该将其文本设置为“It works”。

好吧..它有效,但仅在第二次加载弹出框后才有效。在第一次单击按钮时,标签仍具有其旧的默认值。但是从第 2 次点击开始,“它起作用了”。 有谁知道是什么导致了这个问题?它只有大约 5 行代码代码可以在这个存储库上看到 --> https://github.com/patchthecode/testtest

0 投票
2 回答
590 浏览

objective-c - NSOutlineView reloadData 关闭我的 NSPopOver

我有一个包含两列的 NSOutlineView(基于视图)。在第二列中,我有一个 NSButton 连接到一个 NSPopOver。

当我单击按钮时,它会按预期显示 NSPopOver => Popover 可见。

问题: 如果我重新加载 NSOutlineView 的数据,它会隐藏 NSPopover !

这是正常行为吗?如何避免这种情况?

换句话说,popoverWillClose 委托消息在每次 reloadData 之后被调用

0 投票
0 回答
435 浏览

objective-c - NSPopover 无法正常工作

我像这样以编程方式创建一个 NSPopover:

当调用具有此代码的函数时,会出现 NSPopover,但是当我单击屏幕上的某个位置时,即使在 NSPopover 内部,它也会关闭,并且我在控制台中收到以下错误消息:

出了什么问题?

0 投票
1 回答
919 浏览

objective-c - NSComboBox - problems with background when selected

I'm a iOS developer, and recently I'm programming a desktop APP for MAC OSX. I still don't have much experience with the View's components of OSX, so maybe it's a silly or easy question, but I have made a little research about this problem and haven't found any solution yet.

Here's the problem:

I have a custom specialization of a NSView, that is used as the view of a Content ViewController used in my NSPopover.

Inside this view, that I'm calling "PopoverBackgroundView", I painted inside the drawRect this red background, and calculated another minor rect and painted with this gray-like color. Here's the code:

So, inside the PopoverBackgroundView.m I'm programatically creating a NSComboBox. This comboBox will have the numbers 1 to 10. When I allocate it, everything seems just fine:

enter image description here

The problem is, after I select any options inside the combobox, it's background somehow "goes away" became transparent, I don't know, and become like this:

enter image description here

Please notice the red-like frame (background color of the view) around the NSComboBox, that appeared just AFTER I select something.

Here's the code where I'm allocation the comboBox and initializing it:

Any idea how can I 'fix' this "selected background"? All that I want it's the selected state to be equals to the normal state, i. e. ,the comboBox should be always like the first image, even after the selection.

Is there something wrong with the allocation code? Something mission? I'm really thinking that just some property that I'm not using or initializing, but I couldn't find yet.

Thanks in advance,

0 投票
1 回答
242 浏览

objective-c - 在 NSPopover 中切换 NSView

我有一个包含视图(toolbarView)的 NSPopover。此工具栏包含两个按钮(按钮 1 和按钮 2)。当按下按钮 1 时,“showView1”方法被激活,并且 view1 被添加到工具栏视图下方。类似地,当按钮 2 被按下时,“showView2”方法被激活,并且 view2 被添加到工具栏视图下面。

我将显示在工具栏视图下方的视图存储在 activeView 中,以便在切换视图时该视图始终为 removeFromSuperview (toolbarView)。

该代码有效,您可以来回切换视图,但是,当您切换视图时会闪烁。我已经尝试了很多事情(主要是在两个视图上都使用 setHidden),但是如果没有这种烦人的闪烁,我就无法让它工作。代码有问题吗?我是否应该将两个视图都放入一个表格选项卡视图中?

0 投票
1 回答
276 浏览

macos - 在 windowDidLoad 中打开 NSPopover

当窗口打开时,我试图在 Mac 应用程序中显示 NSPopover 以向用户提供指令,但弹出窗口不会显示。

如果我通过按下按钮调用完全相同的函数,则弹出框会成功显示,但是当我在 windowDidLoad 中调用它时,它不会。

我可以看到我从中呈现它的控件有一个界限,所以我认为这不是问题。我还检查了弹出框的行为不是暂时的,所以它不应该在没有干预的情况下关闭。

在我的函数中,我将一些变量传递给自定义初始化程序,但基本上就是这样:

init 方法只是简单地调用以下内容,自定义视图和控制器在 NIB 中挂钩。

有没有人遇到过这个?

0 投票
1 回答
283 浏览

objective-c - 如何获取 NSPopover 使用的基本 NSView 的参考

这个问题很简单。我有一个 NSPopover 属性,当用户单击我的 NSView 时,我用它来显示一些信息。这是我展示弹出框的方式:

问题是:有没有办法ofView从弹出框获取参数使用的视图的引用?

用户可以在这个 NSViews 中点击很多,我用这个 iVar 跟踪。我正在做一项功能,需要查看新显示的视图是否与前一个视图不同(或不同)。

我想要类似的东西:

有没有办法从 popover 获得这个参考,或者真的不可能?

提前致谢,