如何在电子上替换javascript optionMenu.popoverPresentationController?.sourceView = currentCell.contentView
optionMenu.popoverPresentationController?.sourceRect = currentCell.contentView.bounds
的功能?
有人可以举个例子吗?
我尝试使用此函数prompt
,但发生错误:
未捕获错误:提示符()是否受支持。
答案 0 :(得分:12)
prompt
,confirm
和alert
是阻止脚本执行线程的功能,直到用户输入,这就是电子团队不支持它的原因。相反,您可以出于同样的原因使用某些第三方软件包。
以下是一些以异步方式提供此功能的软件包
https://www.npmjs.com/package/smalltalk
答案 1 :(得分:1)
渲染器过程中内置的电子提示:
const {dialog} = require('electron').remote
const dialogOptions = {type: 'info', buttons: ['OK', 'Cancel'], message: 'Do it?'}
dialog.showMessageBox(dialogOptions, i => console.log(i))
i
是按钮索引,因此“确定”为0,“取消”为1,依此类推...
答案 2 :(得分:0)
我的回答有点晚了,但也许对其他人还是有帮助的。
由于电子团队不希望自己实现prompt()
行为,因此我开发了以下解决方案:electron-osx-prompt。
它提供了一种基于Promise的方式来获取一些简单的用户输入并适应macOS样式。
// From renderer or main process, doesn't matter
const userPrompt = require('electron-osx-prompt');
const icon = __dirname + '/icon.png';
userPrompt('Label text', 'Placeholder text', icon)
.then(input => {
console.log(input);
})
.catch(err => {
console.log(err);
});