本文整理汇总了C#中MonoMac.AppKit.NSMenu.ItemArray方法的典型用法代码示例。如果您正苦于以下问题:C# NSMenu.ItemArray方法的具体用法?C# NSMenu.ItemArray怎么用?C# NSMenu.ItemArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MonoMac.AppKit.NSMenu
的用法示例。
在下文中一共展示了NSMenu.ItemArray方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FinishedLaunching
public override void FinishedLaunching(NSObject notification)
{
// Configure logger
string path = Path.Combine (Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "log4net.config");
XmlConfigurator.ConfigureAndWatch (new FileInfo(path));
logger.Info ("Ventriliquest 1.0 Starting up...");
// Get list of available audio out devices
xamspeech ham = new xamspeech ();
OutputDevices = ham.GetDevices ();
// Setup UI
statusMenu = new NSMenu ();
statusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (30);
var outputItem = new NSMenuItem ("Output Device",
(a, b) => {
});
var deviceList = new NSMenu ();
outputItem.Submenu = deviceList;
OutputDeviceUID = "Built-in Output";
foreach(var entry in OutputDevices) {
var test = new NSMenuItem (entry.Key.ToString(),
(a, b) => {
foreach(NSMenuItem item in deviceList.ItemArray()) {
item.State = NSCellStateValue.Off;
}
NSMenuItem theItem = (NSMenuItem)a;
theItem.State = NSCellStateValue.On;
config.OutputDevice = theItem.Title;
foreach(var e in OutputDevices) {
if(e.Key.ToString().Equals(theItem.Title)) {
OutputDeviceUID = e.Value.ToString();
}
}
});
if(entry.Key.ToString().Equals(config.OutputDevice)) {
test.State = NSCellStateValue.On;
OutputDeviceUID = entry.Value.ToString ();
}
deviceList.AddItem (test);
}
var daItem = new NSMenuItem ("Local Connections Only",
(a, b) => {
NSMenuItem theItem = (NSMenuItem)a;
if(theItem.State == NSCellStateValue.On) {
config.LocalOnly = false;
theItem.State = NSCellStateValue.Off;
} else {
config.LocalOnly = true;
theItem.State = NSCellStateValue.On;
}
});
if(config.LocalOnly) {
daItem.State = NSCellStateValue.On;
}
var quitItem = new NSMenuItem("Quit",
(a, b) => Shutdown ());
var voiceconfigItem = new NSMenuItem("Voice Configuration",
(a, b) => Process.Start("http://127.0.0.1:7888/config"));
statusMenu.AddItem (outputItem);
statusMenu.AddItem (daItem);
statusMenu.AddItem (voiceconfigItem);
statusMenu.AddItem (quitItem);
statusItem.Menu = statusMenu;
statusItem.Image = NSImage.ImageNamed("tts-1.png");
statusItem.AlternateImage = NSImage.ImageNamed ("tts-2.png");
statusItem.HighlightMode = true;
speechdelegate.DidComplete += delegate {
synthesis.Set();
};
sounddelegate.DidComplete += delegate {
playback.Set ();
IsSounding = false;
IsSpeaking = false;
sound.Dispose();
};
speech.Delegate = speechdelegate;
queuetimer = new System.Timers.Timer (250);
queuetimer.Elapsed += (object sender, ElapsedEventArgs e) => {
TTSRequest r;
if(Queue.TryDequeue(out r)) {
if(r.Interrupt) {
// stop current TTS
NSApplication.SharedApplication.InvokeOnMainThread( delegate {
if(IsSpeaking) {
speech.StopSpeaking();
}
//.........这里部分代码省略.........