J'essaie de créer une boîte de message à l'aide de la méthode de dialogue Electron.js showMessageBoxSync. Je voudrais que les boutons soient « Annuler » et « Écraser et continuer ». Je voudrais qu'il s'affiche de la même manière que la boîte lorsque les boutons sont « Annuler » et « OK ».

Lorsque les boutons sont « Annuler » et « OK », les boutons s'affichent côte à côte :

Windows message box with OK and Cancel buttons side by side

Cependant, lorsque j'essaie de régler les boutons sur « Annuler » et « Écraser et continuer », la boîte de message s'affiche différemment :

Windows message box with Overwrite and Continue button displaying in a different part of the box to the Cancel button

Est-il possible de configurer le bouton « Écraser et continuer » pour qu'il s'affiche de la même manière que le bouton « OK » ?

Mon code pour la boîte de message est :

const userSelection = dialog.showMessageBoxSync(mainWindow, {
    type: 'warning',
    title: 'User data already exists in this location',
    message: 'User data for the App already exists in this location. Do you want to overwrite it?',
    buttons: ['Cancel', 'Overwrite and Continue'],
    defaultId: 0,
    cancelId: 0
})
0
NJRBailey 8 nov. 2020 à 15:23

1 réponse

Meilleure réponse

Vous devez utiliser la propriété noLink décrite dans la docs :

noLink Booléen (facultatif) - Sous Windows, Electron essaiera de déterminer lequel des buttons sont des boutons communs (comme "Annuler" ou "Oui"), et affichera les autres sous forme de liens de commande dans le dialogue. Cela peut faire apparaître la boîte de dialogue dans le style des applications Windows modernes. Si vous n'aimez pas ce comportement, vous pouvez définir noLink sur true.

Donc, dans votre cas, vous voudriez ajouter noLink: true à votre objet d'options.

1
pushkin 8 nov. 2020 à 19:57