问题标签 [nswindowcontroller]

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

objective-c - 如何判断 NSPanel 何时获得焦点或成为关键?

我正在 XCode4 中编写一个 Cocoa/Objective-C 应用程序,我需要知道我的首选项面板何时打开。我需要一些像windowDidBecomeKey这样的回调;我试图遵循这个问题中提供的解决方案,但既没有也没有windowDidBecomeKey作为windowDidExpose委托方法出现(但其他方法,如windowDidLoad,windowWillLoad等)。

为了澄清我所说的“不显示为委托方法”的确切含义,我的意思是当我开始输入方法名称时它们不会出现在自动完成中。无论如何,我确实尝试定义它们,但它们从未被调用过。

对象是否NSPanel缺少这些方法,还是我需要做更多的事情?

目前,我有一个界面PrefWindowController

PrefWindowController.h:

PrefWindowController.m:

当应用程序启动时从 .xib 加载窗口时,windowDidLoad会触发并显示上面定义的通知。我这样做只是为了测试方法实际上被调用了。

关于如何在面板成为关键或成为焦点时获得回调的任何建议都会非常有帮助。

更新:

我向windowDidBecomeKey窗口控制器添加了一个方法,如下所示:

PrefWindowController.h:

PrefWindowController.m:

我第一次打开窗口时会记录测试消息,但在我的main.m文件中的返回行上出现错误:

线程 1:程序接收信号:“EXC_BAD_ACCESS”

0 投票
1 回答
101 浏览

objective-c - 初始化用户默认值的最佳窗口控制器方法

在读取用户默认值并将其设置为windowDidLoad. 有没有更好的地方可以做到这一点?

这是我的偏好窗口控制器类中的代码。

0 投票
1 回答
1975 浏览

cocoa - NSWindow setFrame 在 Lion 中不起作用?

我一直在为 Cocoa 和 Lion 中的这个问题自杀,想知道是否有人遇到过这个问题并(希望)找到了解决方案。

我有一个非常简单的项目(代码可以在这里下载:http: //cl.ly/2T0N2C1A3K1r2h1q0R1e),其中 NSWindowController 使用 NSWindow 上的 setFrameOrigin: 方法分配窗口的位置。

在第一次运行时,这可以正常工作,但是一旦用户移动窗口,退出并重新启动应用程序,窗口就会恢复其先前的位置,而不是使用 setFrameOrigin: 命令。

NSWindowController 已经禁用了级联和自动保存,所以它应该发生。

此外,我已经在 Snow Leopard 上进行了测试,并且代码 100% 有效 - 这是 Lion 独有的问题。

有任何想法吗?

0 投票
1 回答
154 浏览

objective-c - 将数据从工作表传递到父窗口的最佳方式是什么?

我有一个NSWindowController和它的NSWindow加载使用beginSheet:withModalWindow ...来添加一个帐户,它是一个子类NSObject。在父窗口控制器中,我有一个包含所有帐户的数组,并且我想要一种将工作表中创建的对象添加到 this 的方法NSMutableArray。传递对象的最佳方式是什么?

0 投票
1 回答
142 浏览

nswindow - 无法在 NSWindow 上显示 MainWindow 传递的值?

这是我的问题:我有一个 MainWindow.xib、Window1.xib、Window1Controller.h、Window1Controller.m 我可以从 MainWindow 显示 Window1,但传递的值不会显示在 Window1 上,我知道该值已准备好显示,我创建Window1 上的一个按钮,我可以调用这个值。加载 Window1 后如何显示传递值。

这是我的代码:

AppDelegate.m

Window1Controller.m

0 投票
1 回答
218 浏览

cocoa - 在可可中管理多种风格的主窗口

在可可的多种主窗口之间切换的最佳方式是什么?我的意思是类似 iTunes 的迷你播放器视图和正常大小的视图。我想布局不同的 nib 文件,让用户在小文件或大文件之间进行选择,并提供更多细节。
我需要一个 NSWindowController 还是可以像这样在 App Delegate 中加载 nib:
[NSBundle loadNibNamed:@"BigWindow" owner:self];

0 投票
1 回答
6066 浏览

macos - 将窗口控制器插座连接到窗口

我正在尝试在 XCode 4 中创建一个简单的模式对话框。我创建了 xib,创建了 NSWindowController 派生类并将其设置为 xib 的文件所有者中的类。我遇到问题的部分是物理连接窗口插座,如问题答案中所述:

如何将焦点放在从 NIB 加载的 NSWindow 上?

为什么我必须在 10.5 上调用我的 NSWindowController 上的 showWindow 两次?

并在此处的 Apple 文档中:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Documents/Concepts/WinControllersAndNibs.html

我理解这个概念,但我无法弄清楚如何在 XCode 4中实际做到这一点!我知道如何通过 CTRL 拖动将 xib 中的控件连接到类中的插座或动作。在这种情况下,我只是不知道要拖动什么。

任何帮助表示赞赏。

0 投票
1 回答
851 浏览

objective-c - 在 NSWindowController 出现在屏幕上之前配置它的窗口

在显示实际窗口之前,我使用的NSWindowController不是我想在窗口上设置一些属性(特别是属性)。styleMask但是,只有当窗口已经在屏幕上时,该window属性才可用。NSWindowController

我可以在 上使用initWithWindow:NSWindowController但后来我不再能够使用 nib 文件作为窗口的内容(因为它使用initWithWindowNibName:.

那么如何在显示之前配置视图,类似于viewWillAppearon NSView

0 投票
2 回答
7346 浏览

objective-c - 如何在 Cocoa 中显示和管理一个简单的应用程序模式对话框

我不确定我是否以正确的方式做事,或者我是否已将其全部破解。

我创建了一个非常简单的测试应用程序(不是基于文档的),用于学习如何在 Cocoa 应用程序中使用应用程序模式对话框。

使用应用程序项目“TestModalDialog”,我有一个简单的 MainMenu.xib,带有默认视图和一个按钮,“显示对话框”,我添加了。我创建了第二个名为 TheDialog.xib 的 XIB,它具有“取消”和“确定”按钮。该 xib 有一个从 NSWindowController 派生的名为“TheDialogController”的类作为它的所有者;窗口出口和代表连接到控制器。

在主视图上选择“显示对话框”将启动对话框。选择“取消”或“确定”将关闭对话框。这是非常简单的代码:

我遇到了模态问题 - 在我输入 userClickedCloseOrOk 和测试之前,如果用户点击关闭按钮(左上角红点),对话框将关闭,但模态会话仍在运行。

我意识到我可以从对话框中离开关闭按钮开始,但是有了它,我已经展示了捕捉这种情况的好方法,还是有更好的方法?或者,我一开始是不是做错了什么,这给我带来了这个问题?

任何意见,将不胜感激。

注意- 原始示例中的代码已注释掉并替换为基于答案的代码。还添加了一个新的通知处理程序。

0 投票
1 回答
201 浏览

macos - 阐明窗口控制器的使用

我一直在学习何时使用 WindowController 以及何时将内容放入 Document 对象中。如果您有一个简单的界面,看起来 Document 作为控制器可以正常工作。我的应用程序中有一个简单的界面,但无论如何将 IB 网点放入 WC 是否是一种好习惯?当您不想使用 WC 时会出现什么情况?