swift - 在 OS X 中子类化 NSWindowController 或 NSViewController

标签 swift macos viewcontroller nswindowcontroller

我想我真的不明白如何通过 Storyboard中的 View Controller 和窗口 Controller 分别管理 View 和窗口。

这是我的问题: 我有一个带有 mainView 的窗口,由 myMainViewController 管理。 我想做的就是在 mainView 中创建一个按钮来显示 anotherWindow (包含 anotherView)并将数据从 myMainViewController 发送到 anotherView。 使用 Storyboard,我拖动了一个窗口 Controller (及其关联的 View )并将按钮连接到窗口(以及performsegue)。 但是我应该如何从 myMainViewController 访问 anotherView 的控件?

  • 我应该创建一个 anotherWindowController 类还是 anotherViewController 类?
  • 第二种情况,如何通过myMainViewController访问它?
  • 即使我对另一个窗口(只有它的 View )没有任何需要管理的内容,我是否应该创建这两个窗口?

基本上,mainView 上的按钮应该将图像和字符串发送到另一个嵌入到 anotherWindow 中的 View 。我确信这是显而易见的,但我对苹果文档有点困惑,不是很清楚......

谢谢

乔什

最佳答案

看起来您需要: 1)创建新的自定义 View Controller (新类是 nsviewcontroller 的子类) 2)在其中创建两个属性(一个用于图像,另一个用于字符串)

    var myImage: NSImage!
    var myText: NSString!

3)按下按钮后,在目标中,您需要创建新类的新对象作为变量,并通过它访问创建的属性

   var secondController = SecondViewController()
   secondController.myImage = //set your image
   SecondController.myText = //set your string

4) 现在呈现您的第二个 View Controller (使用presentViewController),现在您可以在打开的viewController的viewDidLoad方法中使用所需的属性

关于swift - 在 OS X 中子类化 NSWindowController 或 NSViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38809873/

相关文章:

swift - 类扩展了 SKScene 但无法访问其属性

ios - 在 Swift 项目中包含基于方案的某些 Objective-C 文件

ios - 我如何在 iOS Swift 的单个项目中使用两个 GMSMapViews

ios - 我们可以通过检查 isRegisteredForLocalNotifications 从 didRegisterForRemoteNotificationsWithDeviceToken 更新 ViewController

ios - 从自定义模式弹出窗口呈现 View Controller

swift - UITableView - 根据 UITableView 的行号在主视图 Controller 中执行不同的功能

swift - 使用 Swift 创建随机 CGPoint

iphone - 如何将资源编译成二进制文件?

php - 在 Mac 上设置 PHP 开发环境的最佳方法是什么?

macos - 你如何退出 docker-compose up @ macOS?