问题标签 [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.
objective-c - “应用程序在应用程序启动结束时应该有一个根视图控制器”错误仅在设备上
我知道还有其他类似问题的帖子,我已经检查过了,但似乎没有一个是关于我的具体问题,所以请多多包涵。
我正在开发一个应该只在 iPad 上运行的应用程序,所以没有通用的东西:MainWindow nib 文件是为 iPad 设计的。
问题是,只要我在 Xcode(5.0 和 5.1)的 iPad 模拟器上运行它,一切正常。但是,当我尝试在实际的 iPad(使用 iOs 5.0)上运行它时,我得到的只是一个空白屏幕,并且控制台上的“应用程序在应用程序启动结束时应该有一个根视图控制器”消息。
这是一些应该相关的代码:
所以让我感到困惑的是:如果我在模拟器上一步一步地运行上面的代码,调试变量(根视图控制器)会被初始化,而如果我在真实设备上运行它,它只是零。
好的,这就是我的,我非常感谢任何帮助。
谢谢大家。
macos - 绑定一个 NSViewController 的代表对象
是否可以将 a 的representedObject
属性绑定到 aNSViewController
的NSArrayController
属性selection
(即 a NSManagedObject
)?
由于某种原因,这总是给我没有选择占位符!
objective-c - 调整窗口大小时,为什么我的 NSWindow 中的 NSViews 没有调整大小?
我正在努力弄清楚为什么我的视图没有在拖动时调整我的 NSWindow 的大小。
好的,这是我的结构:
- 子类化 NSWindowController 的视图(使用自动布局检查窗口。自动调整大小检查视图。窗口的视图没有连接到 IB 中的任何东西,应该是吗?)
- 各种按钮
- 自定义视图 (选中自动调整子视图大小)
- 子类化 NSViewController 的视图(Auto Resizes Subviews & Translates Mask 检查)
- 各种子视图(选中自动调整子视图大小)
- 子类化 NSViewController 的视图(Auto Resizes Subviews & Translates Mask 检查)
- 各种子视图(选中自动调整子视图大小)
- 子类化 NSViewController 的视图(Auto Resizes Subviews & Translates Mask 检查)
我将这些视图中的每一个添加到我的 NSWindowController 的自定义视图中。这是我文件中唯一相关的方法:
当我更改视图时,要调整大小的 setFrame 确实有效,但当我拖动以调整窗口大小时则无效。据我所知,因为 setFrame 在我更改视图时起作用,所以唯一真正重要(但不起作用)的是我的 NSWindowController 中的自定义视图。
此外,这就是我将这个窗口向前推进的方式:
是的,我已经在我的 initwithframe 中尝试过:
我错过了什么?
cocoa - 将子视图添加到 NSView 以获得类似国际象棋的网格
我正在尝试创建一个由两组正方形(类似象棋的网格)组成的 Cocoa UI,它们在底层算法运行时将采用不同的颜色。当算法的执行结束时,UI 应该能够处理点击、平移和其他手势。
到目前为止,我的层次结构如下(请查看随附的代码了解详情):
1) 主窗口,即窗口控制器的窗口
2) 具有两个自定义视图 mainView 和 sideView 的拆分视图(每个视图都包含一组正方形)
3)两个视图控制器(mainViewController和sideViewController)
我希望能够将正方形加载为 mainView 和 sideView 的子视图。
我想有另一个自定义视图,比如 SquareView 和另一个 nib 文件。我的问题是:
a) 我如何创建这个 SquareView 以便它可以用于创建将作为子视图添加到 mainView 和 sideView 以形成类似国际象棋的网格的正方形?
b) 如何将子视图添加到 mainView 和 sideView 以构建两个网格?为简单起见,我们假设前面提到的每个视图都有四个不重叠的正方形。
谢谢!
主视图.m
侧视图.m
主窗口控制器.h
主窗口控制器.m
cocoa - 我怎样才能让窗口的内容视图“拥抱”它的子视图
像这个问题一样,我有一个 NSView,它是 NSWindow 的 contentView,它包含几个垂直堆叠的子视图。其中一些是固定大小的,其中一些可以使用展开按钮展开或折叠。
我想实现一种“手风琴”效果,其中展开或折叠其中一个子视图会使其他所有内容调整并相应地调整超级视图和窗口的大小。
看起来确实应该能够通过使用自动布局设置正确的一组约束来实现这一点,我现在可以很好地完成初始布局。但我不知道如何设置约束,以便超级视图自动调整大小以拥抱子视图。
上面链接的问题中的 OP 从来没有得到答案,并提供了他自己的解决方案,就像我开始独立实施的那个一样,但我想我会再次把它扔在那里,以防万一有任何自动布局大师知道一个技巧. 似乎应该有一种方法可以通过利用自动布局让超级视图拥抱子视图,而无需手动计算子视图的大小并手动重置超级视图的大小。
有人知道怎么做吗?
cocoa - 来自 XIB 的基于视图的 NSTableView 的视图?
NSTableCellView
是否可以为基于视图的文件提供单独的 XIB 文件NSTableView
?也许在 a 的帮助下NSViewController
?
cocoa - initWithNibName 调用了两次或加载了错误的 xib
我正在编写一个 Cocoa 应用程序,并希望该应用程序作为一种向导工作。因此,在主窗口中,我有一个自定义视图,它与用户交互,并在用户逐步完成向导的各个阶段时从登录屏幕更改为设备激活屏幕。我目前已经覆盖了 WizardViewController 的 awakeFromNib 方法:
照原样,SignInIDViewController 中的 initWithNibName 被调用了两次,一次是由我显式调用,另一次是在加载视图时(可能是通过 loadView)。但是,如果我只是调用 init,那么 initWithNib 名称只会调用一次,但会加载错误的 xib 文件(属于 DeviceActivationViewController 类)。我似乎无法弄清楚我做错了什么,因为 signInViewController 不应该被初始化两次,但我需要在 IB 中显示正确的 xib 文件。
我目前在此类中唯一不是用户界面 IBAction 的方法是生成的 initWithNibName 方法加上添加的 NSLog 语句。
cocoa - 从 Nib 加载 NSViewController
我可以像通常在 UIKit 中使用 initWithNibName:bundle: 那样加载 NSViewController 及其视图和 Nib 文件中的所有子视图吗?在 AppKit 中,我可以使用该消息加载 NSWindowController,但如果我尝试加载 NSViewController,虽然视图不是 nil,但它不会显示。有没有已知的方法可以做到这一点?
编辑:如果我使用 addSubview: 以编程方式添加视图,它会起作用,如果我使用主笔尖中的自定义视图的插座然后替换它则不起作用。
objective-c - 视图控制器不响应操作方法
我有一个简单的测试应用程序(在 OSX 中),它有一个视图控制器,其视图中有一个按钮。按钮的操作方法在视图控制器的类中,并且 IBAction 在 IB 中连接(通过文件的所有者)。单击按钮时,我收到 EXC_BAD_Access 错误(除了偶尔会收到 -[NSRunLoop buttonClick:] )。我在这里阅读了一堆关于 NSViewControllers 不在响应者链中的帖子,而且在 IB 中专门挂钩操作方法应该可以工作。我唯一的代码是这样的:
在应用委托中:
而且,在 TestController 类中,就是这样:
我有 2 个问题。为什么会发生这种情况,以及将 IBActions 用于按钮方法的正确 mvc 位置在哪里(控制器类不应该处理这些)?
objective-c - 按钮单击在后续启动时会出现不同的错误
我以前从未见过这种响应,在同一应用程序的不同运行中,相同的操作会引发不同的错误。
我在 NSViewController 子类中有一个按钮(仅记录发送者)的 IBAction,它在单击按钮时引发错误(这是一个 OSX 应用程序)。我得到了这些(到目前为止):
还有,可怕的 EXC_BAD_ACCESS。
此测试应用程序中唯一的代码是应用程序委托中用于实例化视图控制器的代码:
而视图控制器子类中的这个 IBAction:
在视图控制器中实现的 IBAction 在 IB 中(通过文件所有者)连接到其视图中的按钮。
我不明白我怎么能在这么简单的程序中得到这么多不同的错误信息。这可能是视图控制器不在响应者链中的问题吗?如果是这样,为什么它应该抛出错误,消息不应该被发送到链上然后被丢弃?
我尝试让控制器的视图将控制器设置为下一个响应者(使用 [controller.view setNextResponder:controller];),但这只会在启动时给我 EXC_BAD_ACCESS 错误。