在编程过程中,我经常需要选择整个单词并将其删除。我通过双击鼠标来完成此操作,但我更喜欢通过键盘来完成此操作 - 这可能吗?
我正在尝试ag-grid在基于 Angular 1.5 的项目中使用自定义数据表。定制是允许用户选择表的最大行数,例如最大为2。
我使用在此处的node.setSelected(false)文档页面中找到的代码获得了以下代码,但出现错误:当选择超过最大值 2 时。node.setSelected is not a function
var gridOptions = {
columnDefs: columnDefs,
rowSelection: 'multiple',
onRowSelected: onRowSelected
};
function onRowSelected(event) {
var curSelectedNode = event.node;
var selectionCounts = vm.gridOptions.api.getSelectedNodes().length;
if (selectionCounts > 2) {
var oldestNode = vm.gridOptions.api.getSelectedNodes()[0]; // get the first node, to be popped out
oldestNode.setSelected(false); // causes the above 'not a function' error
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道 ag-grid 的setSelected()API 可能有什么问题吗?或者有更好的方法来进行此定制?
我正在尝试生成一个动态菜单,然后选择要保存在变量中的选项。到目前为止我已经有了这个,但我被困住了。它总是默认为
“错误选择不在列表中,重新运行脚本。”
IFACES=$(nmcli -t -f SSID dev wifi list | grep i)
SELECTION=1
while read -r line; do
echo "$SELECTION) $line"
((SELECTION++))
done <<< "$IFACES"
((SELECTION--))
echo
printf 'Select an interface from the above list: '
read -r OPT
if [[ `seq 1 $SELECTION` = $OPT ]]; then
sed -n "${OPT}p" <<< "$IFACES"
IFACE=$(sed -n "${OPT}p" <<< "$IFACES") #set interface
else
echo "ERROR Selection not in list, rerun the script."
exit 0
fi
Run Code Online (Sandbox Code Playgroud) 因此,我正在尝试制作一个执行以下操作的应用程序:
我已使用此答案的最新编辑共享的方法(此方法)将我的应用程序附加到焦点控件,但GetText该方法中的功能不能满足我的需要。
我也看过这个答案,但它只提供了如何通过双击获得聚焦窗口的详细步骤,这不是我需要的。它确实链接到这个问题,导致我尝试该WM_KEYDOWN方法(如下所示),但这也不起作用。
到目前为止,我已经尝试过这些GetText方法(全部在 MSDN 帖子的上下文中):
string GetText(IntPtr handle)
{
// works in Notepad, but not Chrome
SendMessageW(handle, WM_COPY, 0, 0);
string w = Clipboard.GetText();
return w;
// works in every app, but in Notepad gets the complete contents
// and in Chrome gets the window title
int maxLength = 160;
IntPtr buffer = Marshal.AllocHGlobal((maxLength + 1) * 2);
SendMessageW(handle, WM_GETTEXT, maxLength, …Run Code Online (Sandbox Code Playgroud) 我尝试使用该方法setSelectionRange来更改 vuetify 中光标的位置v-textarea。
当我不操作v-model文本区域的属性引用的数据元素时,它效果很好。但是,如果我尝试先改变身体,然后再应用setSelectionRange方法;光标直接移动到文本末尾。
我附上了简化版本的片段。一旦您在文本区域中的任意位置按下退格键,光标就会移动到索引 2;但它会移动到文本的末尾。
然而,如果您再次删除this.body并退格,它就会平静地移动到索引 2。
new Vue({
el: '#app',
data: {
body: ''
},
created () {
this.body = 'I am initial body. Hit backspace on somewhere if you want!'
},
methods: {
onBackspaceOrDeleteButtonKeydown (event) {
// disable default behavior
event.preventDefault()
let bodyTextArea = this.$refs.pourBody.$el.querySelector('textarea')
// COMMENT OUT THE NEXT LINE TO SEE THE CURSOR MOVES TO INDEX 2 ALWAYS
this.body = 'I am changed …Run Code Online (Sandbox Code Playgroud)我目前正在为 Android 开发 Highscore 系统。我有一个输入字段,玩家可以在其中输入他们的名字。
我想要它,这样玩家就不必点击这个输入字段来输入内容。 然而,到目前为止我所有的尝试都失败了。
我在HighScoreTemplate.cs脚本中创建了一个Select()函数,它将在输入字段上调用.Select() ,然后调用.ActivateInputField()。
public void Select()
{
// Select it
NameField.Select();
NameField.ActivateInputField();
}
Run Code Online (Sandbox Code Playgroud)
然而,这并没有自动选择 NameField 输入字段,因为我的 Android 设备上没有弹出键盘。
我已经通过调试验证了这个 Select() 函数正在被调用并运行。
我还验证了该输入字段是可交互的,当我选择它时,我可以在检查器中看到它选中的复选框。
然后我假设 Unity 可能有延迟,所以我尝试进行此测试以查看它是否有效:
int counter = 1;
while(counter <= 50 && !_newHighScoreTemplate.NameField.isFocused)
{
_newHighScoreTemplate.Select();
Debug.Log("Select Attempt #" + counter);
counter++;
}
Run Code Online (Sandbox Code Playgroud)
这个测试给了我同样的结果,Android 键盘没有弹出并允许我在输入字段中输入文本。
我正在尝试使用类似于 Altair 多行工具提示示例中显示的垂直规则https://altair-viz.github.io/gallery/multiline_tooltip.html。我也想使用文本工具提示,因为我的数据集包含与每个点相关的文本注释。
这是示例代码,我在其中添加了一个带有虚拟文本的“注释”列,并且还将工具提示添加到了行组件中,但工具提示不起作用。
import altair as alt
import pandas as pd
import numpy as np
np.random.seed(42)
source = pd.DataFrame(np.cumsum(np.random.randn(100, 3), 0).round(2),
columns=['A', 'B', 'C'], index=pd.RangeIndex(100, name='x'))
source = source.reset_index().melt('x', var_name='category', value_name='y')
Run Code Online (Sandbox Code Playgroud)
我添加了这一行来创建评论栏:
source['comments']='comment'+source.category+source.x.apply(str)
Run Code Online (Sandbox Code Playgroud)
# Create a selection that chooses the nearest point & selects based on x-value
nearest = alt.selection(type='single', nearest=True, on='mouseover',
fields=['x'], empty='none')
# The basic line
Run Code Online (Sandbox Code Playgroud)
我在这里添加了工具提示:
line = alt.Chart(source).mark_line(interpolate='basis').encode(
x='x:Q',
y='y:Q',
color='category:N',tooltip='comments'
)
Run Code Online (Sandbox Code Playgroud)
其余代码:
# Transparent selectors across the chart. This is what tells …Run Code Online (Sandbox Code Playgroud) 在fabricjs中,画布中的所有对象都有自己的顶部和左侧属性,但是当我进行选择(使用shift+单击或拖动)时,选择范围内所有对象的顶部和左侧值都会丢失其原始值。
有一个简单的代码片段解释了我的问题https://jsfiddle.net/kj7qy6a8/
我想知道或计算选择范围内所有对象的实际顶部和左侧,而不是相对值。
如果您想直接在这里尝试,我会将代码粘贴到此处。
const canvasElmt = document.getElementById('myCanvas');
const canvas = new fabric.Canvas(canvasElmt, {
width: 500,
height: 500
});
let text1 = new fabric.Textbox('text1', { top: 20, left: 40 });
let text2 = new fabric.Textbox('text2', { top: 100, left: 60 });
canvas.add(text1);
canvas.add(text2);
canvas.renderAll();
// button onclick
document.getElementById('btn').onclick = () => {
const infoElmt = document.getElementById('info');
infoElmt.textContent = '';
canvas.getObjects().forEach(({text, top, left}) => {
infoElmt.innerText += `${text} TOP: ${top} LEFT: ${left}\n`;
});
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en">
<head>
<meta …Run Code Online (Sandbox Code Playgroud)我的问题正是如此,但在上下文中我想检查选择对象,比较anchorNode和focusNode,如果它们不同,则找到第一个公共父元素.
var selected = window.getSelection();
var anchor = selection.anchorNode;
var focus = selection.focusNode;
if ( anchor != focus ) {
// find common parent...
}
Run Code Online (Sandbox Code Playgroud) selection ×10
javascript ×3
c# ×2
ag-grid ×1
altair ×1
android ×1
angularjs ×1
bash ×1
c++ ×1
canvas ×1
coordinates ×1
cpu-word ×1
cursor ×1
datatable ×1
dom ×1
dynamic ×1
fabricjs ×1
focus ×1
getselection ×1
input ×1
kate ×1
menu ×1
python ×1
qt ×1
qtableview ×1
qtablewidget ×1
row ×1
textarea ×1
tooltip ×1
unity-ui ×1
vue.js ×1
vuetify.js ×1