Xcode 如何在ApplescriptObjC中打开新GUI和关闭旧GUI

Xcode 如何在ApplescriptObjC中打开新GUI和关闭旧GUI,xcode,user-interface,applescript,applescript-objc,Xcode,User Interface,Applescript,Applescript Objc,我试图使它成为这样,当一个按钮被点击时,当前的GUI关闭,一个新的GUI打开 我创建了第二个要打开的界面。现在,我有2个xib文件和AppDelegate文件。我是否使用相同的AppDelegate文件对这两个GUI进行编程 其次,如何关闭第一个xib文件和打开第二个xib文件 on buttonClicked_(sender) -- Code that closes current GUI and opens new GUI here end buttonClicked_ 通常,Appl

我试图使它成为这样,当一个按钮被点击时,当前的GUI关闭,一个新的GUI打开

我创建了第二个要打开的界面。现在,我有2个xib文件和AppDelegate文件。我是否使用相同的AppDelegate文件对这两个GUI进行编程

其次,如何关闭第一个xib文件和打开第二个xib文件

on buttonClicked_(sender)

-- Code that closes current GUI and opens new GUI here

end buttonClicked_

通常,AppleScriptObjC中只有一个应用程序委托。窗口是否需要位于另一个xib文件中的选择完全取决于窗口的用途。大多数开发人员不希望在MainMenu.xib中有一个窗口,而是希望创建一个MainWindow.xib,或者一些开发人员希望动态创建UI。所以有2个、1个甚至3个xib文件并不能说明什么,无论如何,我希望每个窗口都有一个xib

要使其保持简单并使其正常工作:

  • 将新窗口添加到项目中(我将其保存为MainWindow.xib)
  • 将文件所有者的类别设置为NSWindowController
  • 将窗口与文件的所有者连接并使其成为窗口
  • 向项目中添加新的AppleScript(NSObject的子类)
  • 为窗口编写IBOutLet和操作(参见下文)
  • 将新NSObject添加到xib文件
  • 将NSObject(蓝色立方体)的类设置为新的AppleScript对象
  • 将车窗与IB插座和IBActions连接
  • 还将窗口的委托连接到脚本(蓝色立方体)
窗口的脚本:

   script mainWindow
       property parent : "NSObject"
       property myWindow : missing value
       property myButton : missing value

       on myButtonClicked:sender
          log "I'm clicked"
       end myButtonClicked:
    end script
要加载窗口,我们的应用程序代理中需要类似的内容:

set theController to current application's class "NSWindowController"'s alloc()'s init()
current application's class "NSBundle"'s loadNibNamed:"MainWindow" owner:theController
现在,当我们在应用程序委托中并正确加载nib时,我们可以通过执行
控制器的关闭()
来关闭窗口,并使用
控制器的showWindow:me来显示窗口。对于另一个窗口,只需重复上述步骤,您就可以在它们之间切换