Как получить экземпляр BrowserWindow, который вызвал событие? - PullRequest
1 голос
/ 29 марта 2019

Пример

У вас есть несколько BrowserWindows, открытых и сохраненных в массиве BrowserWindows, вы хотите знать, какое окно вызвало событие закрытия, чтобы вы могли удалить это конкретное BrowserWindow из массива.

window.on('close', () => {
   // Get the instance of the window that called this event
})

Как?

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Поскольку event.sender его тип WebContents, вы не можете сравнить его с BrowserWindow, только если вы сравните event.sender со BrowserWindow.webContents свойством, но я предполагаю, что это не даст уникальную идентификацию.Обойти это можно было бы путем сравнения event.sender.id с window.id

window.on ('close', (event) => {
    // Use event.sender to get the instance of the window that called this event
    console.log (event.sender.id === window.id); // -> true
});
0 голосов
/ 29 марта 2019

BrowserWindow является EventEmitter ; таким образом, метод экземпляра окна on возвращает параметр event в функции обратного вызова, из которого вы можете получить доступ к экземпляру окна, используя свойство event.sender.

window.on ('close', (event) => {
    // Use event.sender to get the instance of the window that called this event
    console.log (event.sender instanceof BrowserWindow); // -> true
    console.log (event.sender === window); // -> true
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...