问题标签 [cocoa-sheet]

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

objective-c - 在 Cocoa 中使用自定义模式表时遇到问题

我的目标:当应用程序通过一个冗长的循环运行时,显示一个具有确定 NSProgressIndicator 的自定义工作表。我希望工作表是应用程序模式,而不是文档模式。用户不能关闭模式表。他们必须等待应用程序完成循环处理。

问题:我无法将自定义工作表附加到窗口。它显示为缺少窗口标题栏的单独窗口(作为工作表应该)。此外,循环结束时不会释放(不关闭)工作表。

我有 2 个用于工作表和主应用程序窗口的单独 nib 文件,以及每个窗口的 2 个控制器类。

以下是相关信息:自定义工作表的控制器实现:

主应用程序窗口的实现。testFiles 方法是一个连接到按钮的 IBAction。

一个想法:我的子类化正确吗?我应该改用 NSWindowController 吗?预先感谢您的帮助!

0 投票
3 回答
12063 浏览

objective-c - Cocoa 中的模态窗口

我正在尝试创建一个自定义模式窗口,这是我到目前为止的代码:

该窗口可以正常弹出,但它不是模态的,例如您仍然可以对请求来自的父窗口执行操作。这个方法是从一个 NSDocument 对象调用的。

我尝试阅读:使用自定义表格

但是我不确定是什么myCustomSheet,因为它没有在任何地方声明。我假设它是一个NSWindow实例变量。

我只是不明白为什么它不是模态的。任何帮助将非常感激。谢谢

0 投票
1 回答
1433 浏览

objective-c - beginSheet:块替代?

Snow Leopard 不是为旧的 beginSheet: 引入了一些替代方法,允许使用块来完成整理工作吗?我不喜欢在另一个回调方法中使用它。

0 投票
2 回答
1939 浏览

objective-c - 使用 Interface Builder 处理多个 Windows

如何在 Cocoa 中使用多个窗口?我创建了一个可可应用程序。当我运行该应用程序时,它会自动显示一个默认窗口。我在窗口中添加了一个按钮。当我单击按钮时,我想打开另一个名为 MySecondWindow 的窗口,它是我在 IB 中创建的。

我为 MySecondWindow 创建了窗口控制器(MySecondWindowController)并将其链接到 IB 中的 nib。当我单击主窗口中的按钮时,我正在调用一个创建 MySecondWindowController 实例的 IBAction 并NSApp beginSheet:使用[mySecondWindowObj window]. 我正在接收Modal session requires modal window消息NSlog。当我尝试打印[mySecondWindowObj window]NSLog,它会打印null..

我不知道该怎么办。应该做哪些必要的事情来完成这项工作?我需要帮助..

谢谢..

0 投票
1 回答
410 浏览

macos - 如何使用 NSTableView 的“编辑”事件

在 NStableViewDelegate 中,我使用工作表窗口开始编辑操作,如下所示:

如果我双击表格单元格,事情会按预期运行:工作表出现,我可以编辑其输入。

如果选择了一个表格单元格并且我按下了返回键,事情往往是连线的:工作表出现,但返回键事件被转发到工作表。反过来,工作表的默认保存按钮被触发 - 并使工作表消失。太糟糕了,没有机会编辑;-)

我应该使用 shouldEditTableColumn: 方法中的当前键事件吗?如果是,我该怎么办?

0 投票
2 回答
923 浏览

cocoa - 我使用 BeginSheet 对吗?(MonoMac)

我有一种感觉,我要么偶然发现了一个错误(不太可能),要么我只是错误地使用了这个功能(可能)。我正在尝试让工作表出现在我的 MainWindow 上。但是由于某种原因,工作表窗口作为没有工具栏的常规窗口弹出,并且根本没有连接到我的 MainWindow。

现在我对 cocoa 和 MonoMac 还是很陌生,所以你必须原谅我,无论如何,代码如下:

我在这里做错了什么?

0 投票
5 回答
29803 浏览

macos - OS X - NSViewController 如何找到它的窗口?

我有一个基于文档的核心数据应用程序。主文档窗口有许多视图,每个视图都由其自己的自定义控制,这些视图NSViewController根据需要进行切换。我希望这些视图控制器中的每一个都能够从文档窗口中下拉自定义模式表。但是,因为视图是单独的而不是MyDocument nib在 IB 中,所以我无法将视图链接到文档窗口。这意味着当我打电话时

我提供 nil ,mainWindow因此该表看起来是分离的。

有什么建议么?

非常感谢

0 投票
1 回答
503 浏览

macos - 视图控制器可以拥有一张工作表吗?

我想从视图控制器中调用一个工作表(用户单击一个按钮,工作表将被显示)。工作表可以有一个单独的窗口控制器(带有出口和动作)还是调用工作表的视图控制器作为工作表的控制器运行?

我正在尝试确定如何从一个单独的 Interface Builder (.xib) 文件而不是我的视图控制器显示工作表。该工作表将有一个基于弹出菜单项的列表,因此我想将该“逻辑”放在单独的控制器中。我尝试使用 a NSWindowController,但没有奏效。

0 投票
1 回答
3443 浏览

objective-c - 如何从单独的 NIB 中显示工作表

我如何将一个窗口放在一个单独的 NIB 中,给它自己的 NSWindowController,让它像一张纸一样滑出?

(这是与床单有关的典型事情吗?)

我正在尝试从我的主窗口显示一个自定义工作表(一个从父窗口的标题栏向下滑动的窗口)。我认为我正在尝试做的是标准的,但我找不到明确的例子或解释来说明如何完全按照我的意愿去做。

我正在尝试做的事情:

  1. 我的应用程序委托拥有主窗口,该窗口有一个打开“设置”表的按钮。
  2. “设置”表:
    • 位于单独的 NIB 中。
    • 将文件所有者设置为类 SettingsWindowController,它是 NSWindowsController 的子类
  3. 当用户单击“设置”时,我正在尝试使用 Apple 的 [示例代码][1]

请原谅以下简单而众多的问题:

  • 当我打电话时loadNibName:owner:,我不想owner成为self,因为这使我的应用程序委托“MyCustomSheet”的所有者 - 这就是我SettingsWindowsController应该做的。但是,我不知道如何SettingsWindowsController用这种方法制作所有者。
  • 如果我的工作表选中了“启动时可见”,则loadNibName:owner:立即将该窗口显示为普通窗口,而不是从主窗口滑出的工作表。
  • 如果我的工作表未选中“启动时可见”,则会beginSheet:modalForWindow:etc导致“模态会话需要模态窗口”。我很确定这是因为我做了笔尖的所有者self(正如我已经提到的)。
  • 在示例代码中,我不知道名为 @"SettingsSheet" 的 Nib 是如何与实例变量“关联”的settingsSheet——但它们显然相关的,因为代码首先检查:(if (!settingsSheet)我用注释标记了这个//BUT HOW DOES THIS MAKE settingsSheet NOT nil?

感谢您耐心阅读这一切!

0 投票
2 回答
419 浏览

macos - mac 应用程序中用于警报的确定按钮不起作用

单击按钮时,我正在使用以下代码

在这个 testViewController 中,我正在使用代码显示警报

但是在单击此警报的确定按钮时。我的警报仍然在屏幕上。请帮忙!