刚尝试在真实设备上测试我的应用程序(HTC Desire Z with Android 2.2).并发现我的上下文菜单根本不起作用EditText.否则上下文菜单有效:in ListView,ImageView等等.在模拟器上一切正常......
当我点击EditText时,它显示缩放框架之类的内容,然后显示异常(不是标准的Android)上下文菜单,其中显示:"选择文本","全选".它不显示我的菜单.这是截图:
但没有像模拟器那样的菜单 - 看这里
这是我活动的源代码:
public class MyActivity extends Activity
{
private static final String TAG=MyActivity.class.getName();
EditText editText;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText=(EditText )findViewById(R.id.editText);
this.registerForContextMenu(editText);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo)
{
Log.v(TAG, "Creating context menu for view="+view);
menu.add(Menu.NONE, Menu.FIRST+1, Menu.NONE, "Test menu");
super.onCreateContextMenu(menu, view, menuInfo); …Run Code Online (Sandbox Code Playgroud) 我有一个带有上下文菜单的分页PrimeFaces Datatable,我希望实现多选,其中上下文菜单中的菜单项将取决于所选项目的数量,因为某些操作仅在仅选择一个项目时可用,以及其他人在选择一个或多个时有效.
我的第一个想法是使用单个菜单项的"呈现"选项,它在控制器bean中设置.这种工作,确实显示了正确的菜单项.问题是使用菜单项的渲染功能会导致选择在数据表中丢失,从而破坏了练习的目的.
<p:dataTable id="orders" dynamic="true" var="item" rowKey="#{item.id}" value="#{ordersController.orders}"
emptyMessage="#{uistrings['datatable.nodata']}" paginator="true" paginatorPosition="both"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
paginatorAlwaysVisible="false" rows="10" selectionMode="multiple" selection="#{ordersController.selectedOrders}" widgetVar="orderList">
<p:ajax event="sort" listener="#{ordersController.onSort}" update="orders"/>
<p:ajax event="rowSelect" update="contextMenu"/>
<p:ajax event="rowUnselect" update="contextMenu"/>
<p:column id="balance_date" sortBy="#{item.balanceDate}">
<f:facet name="header">
<h:outputText value="#{uistrings['orders.column.label.balancedate']}"/>
</f:facet>
<h:outputText value="#{item.balanceDate}">
<f:converter converterId="isoDateTimeConverter"/>
<f:attribute name="#{webUiConstBean.ISO_CONVERTER_ATTRIBUTE_TYPE}" value="#{webUiConstBean.ISO_DATE_CLASS}" />
<f:attribute name="#{webUiConstBean.ISO_CONVERTER_ATTRIBUTE_PATTERN}" value="#{webUiConstBean.ISO_DATE_FORMAT}" />
</h:outputText>
</p:column>
<p:column id="recipient_name" sortBy="#{item.recipient.displayName}">
<f:facet name="header">
<h:outputText value="#{uistrings['orders.column.label.recipient.displayName']}"/>
</f:facet>
<h:outputText value="#{item.recipient.displayName}"/>
</p:column>
[snip]
</p:dataTable>
<p:contextMenu id="contextMenu" for="orders">
<p:menuitem value="#{uistrings['orders.menu.details']}" update="details, orders"
oncomplete="detailDialog.show()" icon="ui-icon-search" rendered="#{ordersController.renderDisplayDetails}" />
<p:menuitem …Run Code Online (Sandbox Code Playgroud) ContextMenu当你点击应用程序的图标或在应用程序的标题栏上单击鼠标右键时,我想调用它.
这是ContextMenu我的意思:

我需要它,因为我做了像窗口一样的自定义控件.
我需要这种行为来完成我的控制.
编辑:
Leo Lorenzo Luis问我代码:
https://skydrive.live.com/?cid=c3392940f5cf5f74&id=C3392940F5CF5F74%21107&authkey=!APd2X3tDxWRfpL4
要么:
我的MainWindow.xaml:
<!--<Grid>
<Border Name="TopBorder" BorderThickness="0.5,0,0,0" BorderBrush="Blue"/>
<Border Name="RightBorder" BorderThickness="0,0.5,0,0" BorderBrush="Red"/>
<Border Name="BottomBorder" BorderThickness="0,0,0.5,0" BorderBrush="Green"/>
<Border Name="LeftBorder" BorderThickness="0,0,0,0.5" BorderBrush="Orange"/>
<Grid Margin="0.5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StatusBar Background="Transparent" MouseDoubleClick="TriggerMaximize" MouseDown="StatusBar_MouseDown">
<Image Margin="5,0,0,0" VerticalAlignment="Center" Width="16" Height="16" Source="{Binding Icon, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" RenderOptions.BitmapScalingMode="NearestNeighbor" RenderOptions.EdgeMode="Aliased"/>
<Label VerticalAlignment="Center" FontSize="14" Content="{Binding Title, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>
</StatusBar>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Column="1">
<Button x:Name="Minimize" ToolTip="Minimize" …Run Code Online (Sandbox Code Playgroud) 我的代码是渲染树,父,子一切都很好,但右键单击contextmenu没有显示.Firebug显示错误"TypeError:vakata_context.element.html不是函数".如果我删除了contextmenu插件,那么它会显示默认的浏览器右键单击选项.这是代码.
jsjQuery(document).ready(function () {
$('#pages-wrapper').jstree({
'core' : {
callback:{
onchange:function(node,tree){
document.location='pages.php?action=edit&id='
+node.id.replace(/.*_/,'');
},
onmove:function(node){
var p=$.tree.focused().parent(node);
var new_order=[],nodes=node.parentNode.childNodes;
for(var i=0;i<nodes.length;++i)
new_order.push(nodes[i].id.replace(/.*_/,''));
$.getJSON('/ww.admin/pages/move_page.php?id='
+node.id.replace(/.*_/,'')+'&parent_id='
+(p==-1?0:p[0].id.replace(/.*_/,''))
+'&order='+new_order);
}
}
},
"plugins" : ["contextmenu"],
'contextmenu':{
'items':{
'create' : {
'label' : "Create Page",
'icon' : "create",
'visible' : function (NODE, TREE_OBJ) {
if(NODE.length != 1) return 0;
return TREE_OBJ.check("creatable", NODE);
},
'action':pages_add_subpage,
'separator_after' : true
},
'rename':false,
'remove':{
'label' : "Delete Page",
'icon' : "remove",
'visible' : function (NODE, TREE_OBJ) {
if(NODE.length != …Run Code Online (Sandbox Code Playgroud) 我正在尝试进行扩展并使用chrome.contextMenu.我创建了一个contextMenu元素,它工作正常,但现在我想知道是否可以为我的元素添加键盘快捷键?我查看了文档但找不到任何内容.谢谢!
javascript google-chrome contextmenu google-chrome-extension
我在ckeditor中添加了img上下文菜单的链接,使用此代码 CKEditor - 将上下文菜单项添加到图像
如何获取有关用户单击的图像的信息?例如图像的id.或者路径.为了处理选定的图像.
我正在尝试向 DLL 文件添加上下文菜单项。原因是我编写了一个应用程序,该应用程序将托管 DLL 文件撤回并部署到 GAC。该应用程序一切正常,但现在我想要右键单击 DLL 并单击“复制到 GAC”的能力。
我试图按照这个问题的说明进行操作:How to add context menu item to Windows Explorer for folders但无济于事。当我右键单击一个 DLL 时,没有出现任何新内容。
我还尝试了以下操作:https : //winaero.com/blog/add-register-dll-context-menu-commands-for-dll-files-in-windows-10/#comment-22928 - 运行了 reg文件,但也没有结果。
也许对此类操作的 DLL 文件有硬编码限制?
这是我当前的注册表设置:
任何指导将不胜感激。
这是一个简单的上下文菜单。1) 如何设置 Text("delete") 和 Image red。
2)如何添加分隔线(下图)
struct customMenu: View {
var onDelete: (() -> Void)?
init(onDelete: @escaping () -> Void) {
self.onDelete = onDelete;
}
var body: some View {
VStack {
if (self.onDelete != nil) {
Button(action: self.onDelete!) {
HStack {
Text("delete")
Image(systemName: "trash")
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 颤振(在桌面上)显示了文本字段的自定义上下文菜单,这绝对是丑陋的:

您知道可以定制的方法吗?
更新
我确实找到了答案。您必须实现一个基于 TextInputField 的类TextSelectionControls并将其提供给selectionControlsTextInputField。您还可以查找其中MaterialTextSelectionControls有一个简单的实现来了解它是如何完成的。
contextmenu ×10
javascript ×3
android ×1
c# ×1
ckeditor ×1
datatable ×1
flutter ×1
java ×1
jstree ×1
multi-select ×1
primefaces ×1
registry ×1
right-click ×1
swiftui ×1
textfield ×1
window ×1
windows ×1
wpf ×1