问题标签 [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 回答
897 浏览

objective-c - 多个 NSView 到一个 Xib 文件中

几天来,我一直在试图弄清楚如何将多个 NSView 处理成一个 .xib 文件。我添加了一个NSViewController子类,用作我的主控制器,它有两个NSView带有两个自定义视图的插座。我将它分为两​​个 NSViewController(PumpController 和 TransactionController)来控制两个自定义视图的内容。

当我将 MainController(文件的所有者)的视图绑定到自定义视图之一时,我可以获得一半的结果。然后,当我将 [self.view addSubview:SomeStuff] 调用到其中一个 NSViewController 中时,我得到了正确的结果,但仅在我连接文件所有者的视图中。我需要在两个视图中都得到结果,但我不能拥有多个具有视图出口的文件所有者。这是一张图片

NIB 中的多个视图。 链接:http: //i.stack.imgur.com/gwSAq.jpg

此外,即使我将上面提到的插座与正确的视图绑定,我也无法从 PumpController 获得“插座”.bounds.size.width 结果。self.view.bounds.size.width 给了我文件所有者视图的结果,而不是 PumpController 视图的结果。

我需要一些帮助来解释我如何将每个自定义视图设置到每个 NSViewController 以使其正常工作。

对不起我的英语:s

提前致谢

0 投票
1 回答
656 浏览

objective-c - NSViewController.view (Subviews) setTag

Each time I press a button, mainController is calling [self.view addSubview: createCustomView.view]. Everything works fine here. The problem is that I need to put a tag on each subview I create in order to retrieve them later. I've already tried this :

And what I actually wanna do is :

But the setTag method doesn't exist. My question is : Is there a way I can do this other than using identifier string which brings some problems in my case?

Thanks in advance

Here's the .h file of the Controller

Here's the .m file of the Controller

0 投票
0 回答
309 浏览

cocoa - 我可以使用 NSViewController 来提供一个可重用的 NSTableView 并定义列和数据吗?

我对 Xcode 和 Cocoa 开发还很陌生,所以如果我使用了错误的术语,请见谅。

我有一个窗口,它有一个绑定到 NSArrayController 的 NSTableView。NSTableView 有一些预定义的列,并且 NSArrayController 在我的窗口加载时填充了数据。

这一切都很好,但我现在需要在许多其他窗口中重新使用该功能。经过大量阅读,我认为 NSViewController 是我需要的,它提供了一个我可以在多个 .xib 中的不同窗口中重复使用的对象。

所以我所做的是在 Xcode 中创建了一个新的 NSViewController 子类,它还为该控制器创建了一个新的 xib。

xib 包含一个自定义视图,我在其中放置了我的 NSTableView。

文件所有者类设置为 KeyViewController,视图出口设置为文件所有者。

然后,我将 ViewController 对象放入原始窗口中,并将视图连接到窗口中的新自定义视图

然后我在其属性中设置 ViewController 的笔尖名称。

新视图永远不会显示,视图控制器 initWithNibName 永远不会被调用。

我是错过了重要的事情还是完全错过了情节。您是否可以仅使用界面生成器来执行此操作,还是我需要在代码中分配和初始化视图?

如果我必须在代码中执行此操作,IB 中的 ViewController 对象和它的 Nib Name 属性的目的是什么?

谢谢..

0 投票
1 回答
244 浏览

objective-c - 在 Objective-C 中使用 ViewController

这是我的 AppDelegate.m 文件:

这是我的 LoginViewController.m:

按下登录按钮时如何切换回主视图?它位于自动创建的文件 MainMenu.xib 中。网上大部分教程都是针对iOS的,在处理视图方面略有不同。如何为视图转换设置动画?

0 投票
2 回答
290 浏览

objective-c - 如果它是自定义类,则获取 NSViewController 的视图?

我使用以下代码将我的视图从我的控制器中取出:

这工作得很好,但我得到了警告Incompatible pointer types initializing CollectionItemView __strong with an expression of type NSView。我明白为什么我得到这个但是可以忽略它还是应该覆盖视图属性?

夹头

0 投票
5 回答
4057 浏览

macos - NSViewController viewWillAppear 可可

我想在可可 MAC 应用程序开发中交换视图,例如 UINavigationController 以在可可触摸中进行推送/弹出视图。它是应用程序对推送和弹出视图的要求,不知何故我可以设法做到这一点,但现在我处于项目中间,我想要可可中的 viewWillAppear 之类的东西。

0 投票
1 回答
34 浏览

cocoa - 在飞行中分离窗户

晚上好。

我有两个控制器。称它们为 NSViewController1 和 NSViewController2。控制器放置在一个 NSWindow 上并具有一些网络逻辑。在程序运行时从内存中删除它们不是很好。

我想创建按钮。如果用户单击按钮,则单个窗口应在两个窗口上分开。第一个新窗口应该包含 NSViewController1,第二个窗口应该包含 NSViewController2。如果切换是动画的,那就更好了。

在此处输入图像描述

实现所描述行为的最佳方法是什么?可能有人看到有这个任务的开源项目?

0 投票
2 回答
3625 浏览

cocoa - Cocoa:使用 nib 加载 NSViewController

我已经尝试了在这个网站上找到的许多可能性,并从苹果开发者页面上阅读了一些解释,但似乎我无法解决关于使用/表单 NIB 加载 NSViewController 的问题。

Xcode Project 上的文件看起来有点像这样:

  • SecondViewController.h
  • 第二视图控制器.m
  • SecondViewController.xib
  • AppDelegate.h
  • AppDelegate.m
  • 主菜单.xib

主要问题是如何使用 SecondViewController.xib 上的初始笔尖以编程方式创建 SecondViewController

  • MainMenu.xib 上 FileOwner 的自定义类是 NSApplication
  • SecondViewController.xib 上 FileOwner 的自定义类是 SecondViewController
  • MainMenu.xb 中有一些面板和窗口(关于窗口和首选项面板)
  • 此应用程序没有主窗口(使用状态栏上的通知图标)

SecondViewController.h

第二视图控制器.m

AppDelegate.h

AppDelegate.m

即使使用 initWithNibName 或仅使用 init,调试时所有 IBOutlet 属性似乎都为零。

我已经尝试过其他解决方案,例如“NSBundle loadNibNamed”或使用 loadView,但它不起作用(警告消息:“NSObject 我不响应 loadView”)。

secondViewController 的主要目的是显示通知消息,包括图形和 web 元素。

我希望有人能给我一个最好的建议。谢谢。

0 投票
2 回答
672 浏览

nsviewcontroller - 停止 NSPopover 多次打开

我有一个 NSButton,单击它时会打开一个 NSPopover,我唯一的问题是,当再次单击该按钮时,NSPopover 会在另一个按钮之上再次打开,弹出窗口使用以下命令打开:

如果用户在视图之外单击,我将如何关闭弹出窗口而不是打开另一个弹出窗口?提前致谢。

(左=单击一次,右=单击多次)

0 投票
1 回答
137 浏览

objective-c - 多态性和 Cocoa NSViews + 绑定

我目前正在为我的应用程序开发一个类似向导的功能,其中每个步骤模型类都是基础 WizardStep 类的子类。我现在只有三个(但他们总是少于十二个)。

我有一个 WizardController 来支持实际的向导 NSView,我现在面临如何在 UI 中管理这个多态 WizardStep 类的问题。请注意,我将为每个步骤子类广泛使用 Cocoa 绑定。

想到了三个解决方案:

1) 为每种 WizardStep 类型创建单独的 NSView(s) 然后创建相等数量的 NSObjectController 并在它们之间绑定特定的子类属性。当用户进入一个步骤时,我将填充 NSObjectController 的内容并在向导视图中显示视图(当然,作为子视图)。

2) 为每种 WizardStep 类型创建单独的 NSView(s) 然后创建单个 NSObjectController 并将所有子类属性绑定到它(其中一些将不可用,具体取决于控制器内容的类型)。当用户进入一个步骤时,我将填充 NSObjectController 的内容并在向导视图中显示视图(当然,作为子视图)。

3)为每种 WizardStep 类型创建一个带有选项卡的 NSTabView 然后创建一个 NSObjectController(或使用向导 ViewController)并将所有子类属性绑定到它(其中一些将不可用,如解决方案 2 中所示)。当用户进入一个步骤时,我将填充 NSObjectController 的内容并根据特定的步骤类型设置选项卡视图的 selectedIndex 属性。

我觉得解决方案 1) 是最正确和最优雅的,但我担心它可能是矫枉过正(许多 NSObjectController,许多 NSView)。解决方案 2) 和 3) 对我来说很愚蠢(因为绑定不可用)。

关于如何进行的任何建议?

谢谢大家,彼得