问题标签 [nsviewcontroller]

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

cocoa - Mac OS X:主从界面和 Cocoa 绑定

我有一个主从界面。在“主要部分”中,我显示人员列表,在“详细信息部分”中,我显示所选人员的详细信息,包括该人拥有的物品列表:

人和事物被放置在 Core Data 管理的数据模型中。

“主要部分”在 NSWindowController 中管理,在其中我有一个 NSArrayController 通过 Cocoa 绑定连接到我的人员实体。

“细节部分”在单独的 NSViewController 中进行管理。

从这个 detail-NSViewController 是否可以使用 Cocoa Bindings 访问主控部分中的选定人员?可以从 Interface Builder 中做到这一点吗?

0 投票
1 回答
2570 浏览

cocoa - 如何使视图的子控件将重点放在 NSViewController 中的 Tab 和 Shift+Tab

我必须升级一个现有的应用程序,并且需要将其现有的 UI 拆分为单独的 NIB。我计划从为所有拆分的 UI 创建单独的 NIB 和 NSViewController 开始。现在的问题是我的 NSViewController 没有响应键盘 TAB 和 SHFIT+TAB 事件,我只是希望我的 NSViewController 在用户单击 TAB 或 SHIFT+TAB 时在动态加载的 NSViewController 视图中将焦点设置在适当的子控件上。

谢谢,

编辑:以下是我的要求。

我有三个子视图,我需要在我的 MainWindow 占位符 NSBox 中动态加载并使用 NSPopupButton 进行切换。

为了检查,我创建了新的可可应用程序并将一个 NSPopupButton 和 NSBox 添加到 Window 并加入 NSPopupButton 和 NSBox 的出口。

其次,我创建了三个新的 NSViewController,其中三个不同的 NIB 包含单独的自定义视图,其中包含两个或三个 NSTextField 的子控件。

在主应用程序委托函数中,我将所有三个 NSViewController 添加到一个数组中,然后使用 replaceSubview 交换视图以替换占位符 NSBox 中的视图。

我在所有三个 NSViewController 中添加了以下代码,但我仍然没有通过按 TAB 或 SHIFT+tab 键来关注子控件。

0 投票
2 回答
14339 浏览

objective-c - NSWindowController 和 NSViewController

可能是一个非常简单的问题,但我无法理解它。

我想创建某种向导: AnNSWindow显示为另一个表单,NSWindow并且应该一个接一个地显示三个不同NSView的 s。

我想我应该创建一个 customNSWindowController和三个NSViewControllers 但我不知道如何设置控制器以及如何交换视图。

0 投票
1 回答
806 浏览

nstableview - 重新加载 NSViewController 时使用文件中的新数据重绘 NSTableView?

我有一个基于 Mac OS X 文档的应用程序,它有多个 NSViewControllers 我可以在它们之间切换,并且每个视图根据之前 NSViewController 的 NSTableView 中的用户选择显示来自 NSTableViews 中 plist 文件的数据。我遇到的问题是我无法弄清楚每次加载 NSViewController 时可以调用什么函数来从文件中读取正确的数据以显示在 NSTableView 中。UIViewControllers我用了viewDidLoad的函数族viewWillAppear,但是一直没能找到NSViewController对应的函数。

目前我正在使用 awakeFromNib,它工作正常,但仅在第一次加载 NSViewController 时。我试过 loadView,但这会使 NSView 崩溃。我假设我需要做更多设置才能使用 loadView。

我正在使用 Hillegass 的书 Cocoa Programming for MAC OS X 中的 View Swapping 代码,它使用以下代码切换 ViewControllers:

并将 NSView 控制器放入响应者链中。

每次交换 NSViewController 时,是否可以调用一些函数来设置视图?我可以检查 NSViewController 是否已成为 firstResponder 吗?

0 投票
1 回答
464 浏览

objective-c - Subviews disappearing on completion of awakeFromNib

I have a view with a NSBox subview (with CA enabled for shadow) and I'm trying to add my NSView subclass to the box dynamically during awakeFromNib.

There will be a varying number of these NSViews depending on the user so I've made some code that determines how many rows and columns to make to arrange them nicely in the box. (I already considered a NSMatrix but it doesn't layout things the way I intend to)

The problem is that after the awakeFromNib method finishes, the subviews suddenly disappear! I have put plenty of NSLog statements to try and track it down and all I'm finding out is that the subviews are clearly being added to the NSBox before they disappear. When running the app the subviews appear just briefly then disappear when the animation has finished.

Here is my awakeFromNib method:

Any help on this one will be greatly appreciated!

Steve

0 投票
3 回答
1084 浏览

objective-c - 对多个视图控制器使用相同的 NIB

基本上我想使用一个 nib 文件和视图控制器作为我计划创建多次的视图的模板。这个笔尖将有几个标签和自定义视图。这个想法是,我将遍历一个对象数组,并为每个对象创建一个此控制器的实例,并将一个属性设置为数组中对象的属性。

目前这一切都很好,除了一件事 - 当我调用 setStringValue: 时标签不会更新!

我正在使用视图控制器代码中的一种方法进行更改,但它不起作用,我猜测 IBOutlet 没有正确连接,这很奇怪,因为自定义视图连接完美。

有任何想法吗?

0 投票
1 回答
1122 浏览

objective-c - NSViewController 或 NSWindowController 来管理 nib

就良好实践和资源使用(内存等)而言,如果任何一种方法都满足我的尝试,那么使用 NSViewController 或 NSWindowController 哪种方法更可取。从另一个笔尖打开另一个笔尖。我可以使用任何一个来完成。唯一的区别是实例化语法和调用语法如下(initWithNibName vs. initWithWindowNibName and [nib view] vs [nib showWindow:sender])

任何意见?

0 投票
2 回答
1281 浏览

objective-c - keyup keydown 方法 NSViewController

我创建了一个 NSViewController 实例并将其作为子视图添加到主窗口的内容视图中。我希望能够捕获键盘事件,但我不知道如何实现它。经过一些研究,我了解到我需要实现NSViewController 中acceptsFirstResponderkeyUp:event:keyDown:event:方法,但之后我仍然没有工作.

0 投票
1 回答
5961 浏览

cocoa - Interface builder中的NSWindowController对象链接

我创建了一个 NSWindow xib 文件,我想在单击另一个窗口中的按钮时打开它。

现在,为了控制 NSWindow 的行为,我从 xib 中的 Library 中拖出一个对象,并将其更改为我在 XCode 中定义的 NSWindowController(即 ListingWindowController)的子类。

同样,我还创建了一个 NSViewController 的子类(即 ListingViewController)来管理 NSWindow 内的 NSView。为此,我将 NSViewController 从 xib 中的库中拖出,并将其类更改为 ListingViewController。

我在IB中连接了我的窗口控制器的窗口和listingVC。

现在要在我的启动(第一个)窗口中单击按钮来调用此窗口,我使用 initWithWindowNibName 像这样创建窗口控制器。

问题是,尽管在 IB 中为即将到来的窗口/视图的视图控制器完成了所有绑定,但即使在新窗口加载后(下面的代码),窗口和 ListingVC 仍然是(null),(null)。

请帮助为什么连接不起作用。我正在努力解决这个问题很长一段时间。

PS:我来自iOS编程背景。所以,我假设 Mac 的窗口/视图控制器的行为类似于 iOS UIViewControllers。

蒂亚..

0 投票
2 回答
725 浏览

xcode - 在 NSViewController 之间切换

我正在开发一个 Mac 应用程序。该应用程序在左侧有一个公共源视图,在右侧有一个详细视图,这是整个窗口的主要部分。

这就像主从关系,但源视图中的每个元素都需要另一个详细视图。事实上,我已经为源视图中的每个元素设计了一个特定的 NSViewController。

如果我在这些 NSViewController 之间切换,这意味着如果我在源视图中选择另一个元素,我会删除当前视图并添加新选择的 NSViewController 的视图。每次我更改 NSViewController 时,它的状态都会丢失。当用户回到那个 NSViewController 时,他必须重新开始。

我现在的问题是:如何保存 NSViewController 的状态,以便我可以在它们之间切换而不会丢失其状态,并且可以继续我离开的地方?