Here’s your easy solution (hopefully this will help other people too):
1) add a custom class for icon, in this example “myicons”
(function () {
tinymce.PluginManager.add('twitter_button_plugin', function (editor, url) {
editor.addButton('mce_tweet_button', {
title: 'Insert tweet',
icon: 'myicons dashicons-twitter',
onclick: function() {
...
}
});
});
})();
2) Enqueue your admin stylesheet file
function load_custom_wp_admin_style() {
wp_enqueue_style( 'custom_wp_admin_css', 'URL/TO/custom_admin_style.css' );
}
add_action( 'admin_enqueue_scripts', 'load_custom_wp_admin_style' );
3) Then in your custom_admin_style.css file add this:
/**
* TinyMCE add support for dashicons
*/
i.mce-i-myicon {
font: 400 20px/1 dashicons;
padding: 0;
vertical-align: top;
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
margin-left: -2px;
padding-right: 2px
}