我有一个Swift Cocoa应用程序,可以从菜单项中分割视图。 当我从界面构建器创建segue时,选项是: 表演,模态和习俗。
然而,当我从按钮创建segue时,会出现更多选项: 表,popover,show,custom,modal
我需要从该菜单项创建一个表单segue。 我错过了什么吗?或者只是从菜单项
中禁用这些额外选项答案 0 :(得分:7)
正如其他人所说,菜单项不能执行依赖于任何窗口附件的segue。不幸的是,有些情况下你想要从菜单项中触发“工作表”。例如,Xcode本身就是这样做的。 Xcode窗口左下角的+将打开一个三项菜单,所有菜单都执行“工作表”segue。
一个选项是定义两个故事板场景之间的segue,给segue一个Identifier,然后以编程方式执行segue。
单击您的第一个场景,然后在场景标题中查找View Controller图标。这是一个包含白色方块的蓝色圆圈。
从该视图控制器图标控制拖动到第二个场景(您要在工作表中显示的场景)。应该在两个场景之间创建一个segue。这个segue将提供各种各样的segue种类,包括“Sheet”。
选择新的segue并显示属性检查器。给segue一个标识符,例如“ShowEditView”
手动触发segue。作为一个简单的测试,将一个按钮拖到场景一上,然后将它连接到一个视图控制器的场景:
@IBAction func wasClicked(sender: AnyObject) {
print("Test button was clicked.")
self.performSegueWithIdentifier("ShowEditView", sender: self)
}
答案 1 :(得分:0)
感谢您的提示。
然而我需要segue,因为它与" import"应用程序中的选项
经过一些研究后,我发现了一张"表" segue需要附加一个窗口,菜单与任何窗口无关。 这就是当我试图从按钮创建segue时出现选项的原因,因为按钮位于视图内部,也是窗口内的视图。
解决方案与Frizlab所说的相关,必须将segue附加到可以显示它的视图/窗口,然后在单击菜单时执行该segue
答案 2 :(得分:-1)
仅限故事板解决方案
NSMenuItem
。将其标记为“属性检查器”NSButton
拖动到performClick:
(从步骤2开始)NSButton
。这将模拟在NSButton上单击鼠标注意:为隐藏的NSStackView添加$factory->define(App\Models\YourModel::class, function (Faker\Generator $faker) {
static $combos;
$combos = $combos ?: [];
$faker1 = $faker->something();
while($faker2 = $faker->somethingElse() && in_array([$faker1, $faker2], $combos) {}
$combos[] = [$faker1, $faker2];
return ['field1' => $faker1, 'field2' => $faker2];
});
,以便从NSMenu显示为工作表的每个视图。
答案 3 :(得分:-2)
你没有遗漏任何东西。我解决这个问题的方法是选择一个segue选项,然后使用更改编辑器打开更改的故事板,找到为segue更改的确切位置。以XML格式打开时很容易看到。然后我手动编辑segue到" sheet"。保存故事板,一切正常。