Sketch插件:如何动态更新NSButton组件(Objective-C,Cocoascript)

时间:2017-03-24 04:11:31

标签: javascript objective-c plugins nsbutton cocoascript

我正在尝试开发一个用于获取Sketch插件输入的UI。据我所知,Sketch允许我们用JS,Cocoascript和Objective-C编写,最终将所有内容转换为Objective-C。

我使用以下代码生成UI组件,如文本框和下拉列表。我不确定如何动态连接它们。例如,如果我将下拉列表的值从a更改为b,我想撤消文本框。

var pluginView = [[NSView alloc] initWithFrame: NSMakeRect(0,0,450,600)]

// Textbox
var ui_textbox = [[NSTextField alloc] initWithFrame: NSMakeRect(0,20,100,20)]
[ui_textbox setStringValue: "10"]
[pluginView addSubview: ui_textbox]

// dropdown
var ui_dropdown = [[NSComboBox alloc] initWithFrame: NSMakeRect(0,40,100,20)]
[ui_dropdown addItemWithObjectValue: "a"];
[ui_dropdown addItemWithObjectValue: "b"];
[ui_dropdown selectItemWithObjectValue: "a"];
[pluginView addSubview: ui_dropdown]

我假设在下拉列表更新时应该有一种触发函数的方法,在该函数中,我可以操纵其他UI参数。我知道如何操纵UI组件。我无法弄清楚如何触发onchange函数。

我已经尝试过调用函数" ui_update"通过以下方式

[rotateRelative setAction: "ui_update"];
[rotateRelative setAction: "ui_update:"]; 
[rotateRelative setAction: @selector"ui_update:"]; 

但没有运气。该函数不会被调用。

任何帮助都将非常有用。 干杯!

0 个答案:

没有答案