【问题标题】:How to get a checkbox input in a Sketch plugin with Cocoascript?如何使用 Cocoascript 在 Sketch 插件中获取复选框输入?
【发布时间】:2016-12-21 14:17:40
【问题描述】:

我有一个 Sketch 插件,它可以根据用户在画板中的选择生成三个不同的文件。我想让用户通过复选框选择他们实际想要生成的三个文件中的哪一个(而不是总是生成所有三个文件)。

我正在寻找有关如何在警报消息中构建复选框的 Cocoascript 函数(如果存在)的任何参考/帮助,因此当触发插件时,警报将弹出并为用户提供三个选项从中选择。

【问题讨论】:

  • 不是一个真正的答案(因为我也在寻找一个复选框),但我找到了方法- (id)askForUserInput:(id)arg1 ofType:(long long)arg2 initialValue:(id)arg3;。我发现在arg2 中输入 0、1 或 2 会在警报中提供不同的输入控件。我尝试一直到 10,但遗憾的是没有复选框...

标签: sketch-3 sketchapp cocoa-scripting cocoascript


【解决方案1】:

也许你已经解决了,但以防万一你可以这样做:

var dialogWindow = COSAlertWindow.new();

var checkbox = NSButton.alloc().initWithFrame(NSMakeRect(0,0,200,23))
checkbox.setButtonType(NSSwitchButton)
checkbox.setBezelStyle(0)
checkbox.setTitle("A fancy copy here")
checkbox.setState(NSOffState) // or NSOnState

dialogWindow.addAccessoryView(checkbox)

你可以得到这样的值:

checkbox.stringValue() // Returns 0 or 1

【讨论】:

  • 刚刚用这个创建了一个复选框。谢谢!
【解决方案2】:

好吧,这可能不是完全你想要的,但我设法通过使用用户的选择输入得到了我想要的。

尝试使用这个 sn-p:

var sketch = context.api()
var inputs = ["Turn on", "Turn off"];

var gotInput = sketch.getSelectionFromUser("Turn something on?", inputs, 0);

var chosenIndex = gotInput[1]
sketch.alert(inputs[chosenIndex], "You chose");

是的,我知道,丑得要命。但这就是我现在所能想到的,当一个 real 复选框被制作出来时,我会很高兴的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 2011-10-04
    • 2023-03-23
    • 1970-01-01
    • 2019-07-16
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多