我正在使用跨平台框架NativeScript 1.5,我试图在TextView上显示编辑菜单。在iOS的这种情况下,我尝试创建一个名为UIMenuController的东西:
var menu = UIMenuController.sharedMenuController();
console.log(menu);
系统打印出该菜单是UIMenuController对象。之后,我希望在光标在textview上闪烁后立即弹出编辑菜单,所以:
textview.focus();
menu.menuVisible = true;
然而,什么也没发生。我做错了什么?或者有更好的方法吗?非常感谢任何评论。
答案 0 :(得分:1)
更新我的确切代码
XML:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="pageLoaded">
<StackLayout>
<Button text="Menu" tap="menu" />
<TextField id="te" text="Hi this is a test of the emergency system. panic now."/>
</StackLayout>
</Page>
JS:
var page;
exports.pageLoaded = function(args) {
page = args.object;
};
exports.menu = function() {
var menu = UIMenuController.sharedMenuController();
var te = page.getViewById('te');
te.focus();
menu.setTargetRectInView(page._nativeView.frame, te.ios);
menu.setMenuVisibleAnimated(true, true);
}
好的,主要问题是你需要最初设定一个目标;没有目标它显然不知道在哪里显示菜单。在我的测试中,因为我最初点击了字段来输入数据;菜单有一个目标,所以setMenuVisibileAnimated工作。但是,如果你没有&#34;轻拍&#34;进入该领域它显然没有得到目标矩形。通过告诉它需要显示的位置;它有效。