设置新创建的原点windowCocoa/Applescript

Set the origin of newly created window Cocoa/Applescript

我正在尝试在 Cocoa/AppleScript 类型的应用程序中创建具有给定来源的新 window。

我有主笔尖 window 和另一个叫 hud 的笔尖。使用 main window 中的按钮,我以这种方式打开新的 window (hud): set winn to NSWindowController's alloc()'s initWithWindowNibName_("hud") winn's showWindow_("jkb") window 出现了。

我想在屏幕上的不同位置显示它,但没有任何运气。我已经尝试了这两者的所有组合:

set myOrigin to {x:330,y:330}set myOrigin to {330,330}

每行如下:

current application's winn's class "NSWindow"'s class "NSView"'s setFrameOrigin_(mySize) --class "NSView" of class "NSWindow" of winn 不理解“setFrameOrigin_”消息

current application's winn's NSWindow's setFrameOrigin_(myOrigin) --winn的NSWindow不理解“setFrameOrigin_”消息

current application's winn's class "NSView"'s setFrameOrigin_(myOrigin) --class "NSView" winn不理解“setFrameOrigin_”消息

current application's winn's jkb's class "NSView"'s setFrameOrigin_(myOrigin) --class "NSView" of jkb of winn 不理解“setFrameOrigin_”消息

current application's jkb's class "NSView"'s setFrameOrigin_(myOrigin) --class "NSView" jkb 不理解“setFrameOrigin_”消息

current application's jkb's NSView's setFrameOrigin_(myOrigin) --jkb的NSView不理解“setFrameOrigin_”消息

current application's jkb's class "NSView"'s setFrameOrigin_(myOrigin) --class "NSView" jkb 不理解“setFrameOrigin_”消息

winn's jkb's class "NSView"'s setFrameOrigin_(myOrigin) --this class 与键 jkb 的键值编码不兼容。

当我查看 log ... frame 时,我看到了物体,为什么它们不响应 setFrameOrgin_()

解决此问题的两种方法:

  1. 通过IB:

  1. 以编程方式:

子类 NSWindowController 并在 windowDidLoad: 中设置原点 window setFrame:

这适用于我的应用程序:

theWindow's setFrameTopLeftPoint:{60,460}

其中 theWindowNSWindow 实例(从 window 控制器中检索)

请记住 {0,0} 是此方法主屏幕的左侧底部。

我终于解决了这个问题。在 hud nib 中,我将 window 绑定到与主委托不同的新脚本中的 property hudWindow: missing value。在此脚本中,我创建了另一个方法 awakeFromNib()。当它被调用时,我终于可以指向正确的对象 (hudWindow) 并设置它的参数。谢谢