设置新创建的窗口Cocoa / Applescript

时间:2016-06-18 21:18:07

标签: xcode cocoa applescript applescript-objc

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

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

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

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"班级" NSWindow" winn不理解“setFrameOrigin_”消息

current application's winn's NSWindow's setFrameOrigin_(myOrigin) - WinW的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" win的jkb不理解“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) - 此类与密钥jkb不符合键值编码。

当我查看log ... frame时,我看到了对象,为什么他们没有回复setFrameOrgin_()

3 个答案:

答案 0 :(得分:0)

有两种方法:

  1. 通过IB:
  2. IB

    1. 编程方式:
    2. 子类NSWindowController并使用windowDidLoad:

      window setFrame:中设置原点

答案 1 :(得分:0)

这适用于我的应用:

## Data
donner <- read.delim("http://web.as.uky.edu/statistics/users/pbreheny/760/data/donner.txt")
set.seed(1234)
library(caret)
donner$Age <- as.numeric(donner$Age)
donner$Status <- as.integer(donner$Status)-1  
donner$Sex <- as.numeric(donner$Sex)-1 
splitIndex <- createDataPartition(donner$Status, p = .80, list = FALSE, times = 1)
trainDF <- donner[splitIndex,]
testDF <- donner[-splitIndex,]
ctrl <- trainControl(method = "cv", number = 2)
donner$Status <- as.factor(donner$Status)
logregmodel <- train(Status ~ ., data = donner, method = "logreg", trControl = ctrl)

其中arg="$@" echo $arg firstChar=(`echo "$arg" | cut -c 1`) echo $firstChar theWindow's setFrameTopLeftPoint:{60,460} 的实例(从窗口控制器中检索)

请记住{0,0}是此方法主屏幕的左下角。

答案 2 :(得分:0)

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