在 focus() 上显示文本视图上的编辑菜单(复制/粘贴/选择)



我正在使用跨平台框架NativeScript 1.5,我正在尝试在TextView上显示编辑菜单。在这种情况下,在iOS中,我尝试创建一个名为UIMenuController的东西,如下所示:

var menu = UIMenuController.sharedMenuController(); console.log(menu);

打印出该菜单的系统是一个 UIMenuController 对象。之后,我希望在光标在文本视图上闪烁后立即弹出编辑菜单,因此:

textview.focus(); menu.menuVisible = true; 然而,什么也没发生。我做错了还是什么?或者有什么更好的方法可以做到这一点吗?任何意见都非常感谢。

更新我的确切代码

.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);
}

好的,主要问题是你需要首先设置一个目标;没有目标,它显然不知道在哪里显示菜单。 在我的测试中,因为我最初单击该字段以键入数据;菜单有一个目标,所以设置菜单可见动画工作。 但是,如果您不"点击"该字段,它显然不会获得目标矩形。 因此,通过告诉它需要显示的位置;它有效。

最新更新