我试图这样做,当点击一个按钮时,当前的GUI关闭并打开一个新的GUI。
我创建了第二个打开的界面。所以现在,我有2个xib文件和AppDelegate文件。我是否使用相同的AppDelegate文件编写两个GUI?
其次,如何关闭第一个xib文件,打开第二个xib文件。
on buttonClicked_(sender)
-- Code that closes current GUI and opens new GUI here
end buttonClicked_
答案 0 :(得分:1)
通常,AppleScriptObjC中只有一个应用程序委托。选择窗口是否需要在另一个xib文件中,或者完全取决于窗口的用途。大多数开发人员都不想在MainMenu.xib中创建一个窗口,而是创建一个MainWindow.xib,或者一些开发人员更喜欢动态创建UI。所以有2个,1个甚至3个xib文件并没有多说,无论如何我更喜欢每个窗口都有一个xib。
为了保持简单并使其全部工作:
窗口脚本:
script mainWindow
property parent : "NSObject"
property myWindow : missing value
property myButton : missing value
on myButtonClicked:sender
log "I'm clicked"
end myButtonClicked:
end script
要加载窗口,我们在app delegate中需要这样的东西:
set theController to current application's class "NSWindowController"'s alloc()'s init()
current application's class "NSBundle"'s loadNibNamed:"MainWindow" owner:theController
现在,当我们进入应用程序委托并正确加载我们的笔尖时,我们可以通过theController's close()
关闭窗口并使用theController's showWindow:me
显示窗口。对于其他窗口,只需重复上述步骤你可以在它们之间切换。