请考虑以下代码。它按预期工作 - 正在发送MPMoviePlayerDidExitFullscreenNotification通知并调用ClosePlayer方法。
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.MediaPlayer;
using MonoTouch.UIKit;
public partial class PlayerViewController : MPMoviePlayerController
{
public PlayerViewController() : base()
{
NSNotificationCenter.DefaultCenter.AddObserver("MPMoviePlayerDidExitFullscreenNotification", this.ClosePlayer);
}
private void ClosePlayer(NSNotification notification)
{
// Do something..
}
}
然而,这个设计让我很奇怪,而且我想知道我们是否可以做更简单的事情,如下所示:
this.MPMoviePlayerDidExitFullscreenNotification += this.ClosePlayer;
为了听取类本身触发的事件,必须通过NSNotificationCenter似乎真的不自然。或者我错过了什么?
此外 - 是否可以以硬编码字符串以外的任何方式指定通知类型(例如 - MPMoviePlayerDidExitFullscreenNotification)?
提前谢谢你:)
免责声明:我是MonoTouch中的一个总菜鸟,并且有一些.NET背景,有些东西感觉很奇怪。
答案 0 :(得分:2)
我偶然发现MPMoviePlayerController上有一个可以使用的静态属性:
MPMoviePlayerController.Notifications.ObserveDidExitFullscreen(this.ClosePlayer);