2017-05-31 54 views
1

我正在开发一个草图插件。在我用来获取用户输入的模式窗口中有一个选择。我可以访问textField的值,但我无法访问select的值。获取cocoascript中的selectbox的值

这里是我创建的选择:

var chooseFormatOptions = ['.png', '.jpg', '.pdf']; 
var chooseFormatSelect = NSComboBox.alloc().initWithFrame(NSMakeRect(0, 250, viewWidth, 30)); 
chooseFormatSelect.addItemsWithObjectValues(chooseFormatOptions); 

这里就是我试图让组合框的值

if (response == "1000"){ 
     var projectName = projectField.stringValue(); 
     var deviceName1 = firstDevicefield.stringValue(); 
     var deviceDim1 = firstDimfield.stringValue(); 
     var deviceName2 = secondDevicefield.stringValue(); 
     var deviceDim2 = secondDimfield.stringValue(); 
     var format = chooseFormatSelect.objectValues.indexOfSelectedItem(), 
     //var scale = chooseScaleOptions.stringValue(); 
     //var pathOption = choosePathOptions.stringValue(); 
     } 

,它给我,当我运行的插件(如果错误响应== 1000)是:找不到变量chooseFormatSelect。

你知道为什么我可以得到输入字段的值(所以它可以找到变量),但不是选择的值吗?

回答

-1

在观察变化的同时访问文本字段“文本”变量呢?

您可能会发现此link有用(添加观察)。

对于NSComboBox遵循this

只需通过以下method

+0

我没有用任何文本框的问题实行委托然后访问值。我可以很容易地访问它的值调用nameField.stringvalue()。但是这对于选择框不起作用。调试器告诉我它找不到变量,即使它可以找到包含textField值的变量。两者都具有相同的功能。为什么它可以访问第一个而不是另一个? –

+0

@MatteoVacca添加观察者并将您想要的值保存到任何变量中。我不明白你说什么价值,如果你使用文本字段唯一的变量是改变textField.text –

+0

我不明白为什么使用观察员。我试图更加清楚:我在警报视图和一个组合框中有几个输入字段。从主函数中,我调用函数来创建模态视图的布局,在此处输入字段和组合框。从主我可以访问输入字段的值(所以如果用户在输入中输入我可以得到它的值),但我不能访问组合框中选定的项目。我不明白为什么。 –