问题标签 [nswindow]

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 投票
5 回答
56788 浏览

objective-c - 如何以编程方式创建 Cocoa 窗口?

我的 Cocoa 应用程序需要一些小的动态生成的窗口。如何在运行时以编程方式创建 Cocoa 窗口?

到目前为止,这是我的非工作尝试。我看不到任何结果。

0 投票
2 回答
6076 浏览

objective-c - 为什么我的工作表没有附加到运行它的窗口?

我有一个包含两个窗口的 NIB,一个是应用程序的主窗口在启动时可见,另一个是自定义工作表(因此在启动时不可见)。当需要工作表时,我的控制器调用:

[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];

它显示工作表窗口并启动一个模态会话,该窗口有一个标准的 Aqua 标题栏,没有“连接”到主窗口,并且可以像常规窗口一样移动。不用说,这是不可取的:-)。为什么工作表窗口不会“弹出”它运行的窗口,就像工作表通常以这种方式开始时所做的那样?

我想知道我在控制器内部开始工作表这一事实是否-awakeFromNib会产生影响,所以我将工作表移动到稍后可以触发的按钮动作上。这并没有改变行为。我还没有想过要尝试什么。我的目标是 10.5 SDK,使用 Xcode 3.1。

编辑:所以看起来我已经创建了一个模式对话框;工作表和应用程序模式对话框都使用该-beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:方法启动。但是我如何指示我的窗口应该是一个工作表而不是模式对话框?

0 投票
2 回答
2721 浏览

cocoa - 锁定一个nswindow的位置

是否可以锁定nswindow的位置?我不是要 setIgnoresMouseEvents。我需要阻止用户移动窗口,但他应该仍然可以使用 nstoolbar。

提前谢谢--molter

0 投票
3 回答
5806 浏览

objective-c - 如何将 Cocoa 坐标从左上角 == 原点转换为左下角 == 原点

我使用 CGWindowListCopyWindowInfo 来获取所有窗口的列表。它根据屏幕左上角的原点为我提供每个窗口的坐标。

如果我使用 NSWindow 的 setFrame 方法,则坐标基于屏幕左下角的原点。

什么是从一种转换到另一种的干净、可靠的方法?

补充:干净和可靠,我的意思是,无论用户是否有多个屏幕或正在使用 Spaces,某些东西都可以正常工作。我认为必须有一个使用库 API 的已知习语。

0 投票
1 回答
318 浏览

objective-c - 单击时如何使按钮显示窗口?

当一个按钮被点击时,你如何让一个按钮在同一个 Nib 文件中显示一个窗口?对不起,如果这是模糊的。

0 投票
4 回答
8940 浏览

objective-c - 在 Cocoa 中隐藏标题栏中的按钮

苹果人机界面指南说:

macOS 人机界面指南:面板

如何制作该图像中的第一个标题栏(只有一个关闭按钮)。在 IB 中同时禁用ResizeMinimize只会使 resize/minimize 按钮被禁用。但我希望它们消失。我怎样才能做到这一点?

0 投票
1 回答
155 浏览

cocoa - nswindowcontroller + program execution

Possible Duplicate:
Cocoa: I've got my user's input - Now what?

I am trying to use nswindows controller to handle user inputs during the program execution. I am able to get the user input in a nstextfield but when i am clicking on the ok or cancel button, their respective IBAction methods are getting executed and the control is not getting returned to the previous execution place that should execute after the nswindowcontroller gets the user input. Please suggest me a way to get over this.

Thanks

0 投票
1 回答
661 浏览

cocoa - Cocoa:我得到了用户的输入——现在呢?

简而言之,我的程序所做的是:它使用 nswindow(由我的 NSWindowController 对象控制)定期执行并接受用户输入并继续执行。

这是我的 myController.mm,它正在调用并显示窗口以获取用户输入:

这是我的 nswindowcontroller 对象代码:

在我单击“确定”或“取消”按钮后,将调用相应的 IBAction 方法并按要求执行,即它显示窗口从文本字段中获取用户输入,单击“确定”时它也在更新密码。但是在它执行完 IBAction clickOK 方法之后,它应该返回到 myController.mm 并通过执行下一条语句“NSString *inputPassword = [encPassController password];”来检索密码 这没有发生。请有人提出解决这种情况的方法。

编辑:

感谢鲍勃的回复。我现在明白我的错误是什么了。所以我通过使用while循环尝试了通知方法,如下所示:

在我的程序中间等待通知到来并将bool变量设置为true。但现在的问题是它进入了无限循环,我的应用程序被卡住了。

有没有像 MFC 等价物直接等待用户输入的东西。真的很难创建一个窗口并获得用户输入还是我真的错过了这里的东西????

0 投票
1 回答
1119 浏览

objective-c - 如何检测 NSDrawer 是否会在屏幕外打开

我正在开发一个主窗口有 NSDrawer 的应用程序。抽屉总是在右边缘打开是至关重要的,这就是我编写它的工作方式。我想知道的是,是否有办法检测抽屉是否会“在屏幕外”打开……有没有办法可以检测到这一点?如果是这样,怎么做?另外,我如何移动主窗口以调整将要打开的抽屉的宽度?

提前致谢。

缺口

编辑:

感谢 Rob 的建议,这是解决方案。

0 投票
2 回答
672 浏览

objective-c - NSTableView 响应面板中的第一次单击

我在 Interface Builder 中注意到,如果我想单击或从 Library 面板拖动,我只需单击一次,即使 Library 面板没有当前焦点。

我正在尝试构建一个行为相似的面板。

有没有什么简单的方法让 NSTableView 接受点击,即使窗口没有焦点?

谢谢。