NSNotificationCenter 类

定义

应用程序的通知中心。

[Foundation.Register("NSNotificationCenter", true)]
public class NSNotificationCenter : Foundation.NSObject
type NSNotificationCenter = class
    inherit NSObject
继承
NSNotificationCenter
派生
属性

注解

NSNotificationCenter 是一个中心,用于侦听应用程序中的广播消息和发布广播消息。 发布的消息是同步的。

NSNotificationCenter.DefaultCenter 在应用程序中起着核心作用,因为这是针对感兴趣的系统级别事件发布系统通知的位置。

发布通知是一个同步过程,这意味着调用通知中心上的 Post 消息之一将阻止执行,直到所有通知处理程序完成运行。

通知发布在与调用线程相同的线程上,这可能会产生意外的影响。 如果需要从后台线程传递通知,请使用 BeginInvokeOnMainThread(Action) 方法将发布包装到主线程上调用的委托中。

订阅通知时,可以通过指定通知名称 (或 null 来侦听发布到通知中心) 的所有通知,从而仅订阅某种类型的通知。 也可以仅订阅特定对象发出的通知。 这可用于筛选收到的通知量。

通知通常是承载在某些类中的 NSString 字段,例如 Objective-C UITextViewTextDidChangeNotification 在类 UITextView 中找到为 TextDidChangeNotification。 为方便起见,有采用 C# 字符串的重载。

若要注册通知,可以使用 AddObserver 方法。 建议使用这些方法的 C# 版本,因为可以直接将委托、lambda 和方法直接连接到代码中。 在此类中使用任何执行 Action<NSNotification;> 参数的 AddObserver 方法时,AddObserver 将返回令牌。 然后,当想要停止侦听特定事件时,此令牌将用作 RemoveNotification 的参数。

NSObject notificationToken;

void Setup ()
{
	notificationToken = NSNotificationCenter.DefaultCenter.AddObserver (FooBar.ClockNotification, OnClockChange);
}

void OnClockChange (NSNotification notification)
{
	Console.WriteLine ("The ClockNotification message was posted");
}

void Teardown ()
{
	NSNotificationCenter.DefaultCenter.RemoveObserver (notificationToken);
}

从 MonoTouch 5.4 开始,对返回的通知令牌调用 Dispose 也会为你删除观察程序,使代码更短。 例如:

NSObject notificationToken;

void Setup ()
{
	notificationToken = NSNotificationCenter.DefaultCenter.AddObserver (FooBar.ClockNotification, OnClockChange);
}

void OnClockChange (NSNotification notification)
{
	Console.WriteLine ("The ClockNotification message was posted");
}

void Teardown ()
{
	notificationToken.Dispose ();
}

同样,如果对象实现 T:System.IDisposable (包括派生自NSObject) 必须在函数中Dispose调用 RemoveObservers(IEnumerable<NSObject>)notificationToken.Dispose() 的任何对象:

class MyClass : NSObject
{
      private NSObject notificationToken; 

      MyClass()
      { 
         notificationToken = NSNotificationCenter.DefaultCenter.AddObserver(notificationName, NotificationHandler);
      }

      void NotificationHandler(NSNotification notification)
      {
         // ... etc ...
      }

      private bool disposed = false;
      override protected void Dispose(bool disposing)
      {
         if (!disposed)
         {
               if (disposing)
               {
                  notificationToken.Dispose();
               }
               disposed = true;
               base.Dispose();
         }
      }
}

构造函数

NSNotificationCenter()

不带参数初始化此类的新实例的默认构造函数。

NSNotificationCenter(IntPtr)

创建非托管对象的托管表示形式时使用的构造函数;由运行时调用。

NSNotificationCenter(NSObjectFlag)

用于调用派生类的构造函数,以跳过初始化并仅分配 对象。

属性

Class

应用程序的通知中心。

(继承自 NSObject)
ClassHandle

此类的句柄。

DebugDescription

此对象的开发人员有意义的说明。

(继承自 NSObject)
DefaultCenter

默认通知中心、系统通知和系统级事件将发布到此通知中心。

Description

对象的说明,即 ToString 的 Objective-C 版本。

(继承自 NSObject)
Handle

处理指向非托管对象表示形式的 (指针) 。

(继承自 NSObject)
IsDirectBinding

应用程序的通知中心。

(继承自 NSObject)
IsProxy

应用程序的通知中心。

(继承自 NSObject)
RetainCount

返回对象的当前 Objective-C 保留计数。

(继承自 NSObject)
Self

应用程序的通知中心。

(继承自 NSObject)
Superclass

应用程序的通知中心。

(继承自 NSObject)
SuperHandle

用于表示此 NSObject 基类中方法的句柄。

(继承自 NSObject)
Zone

应用程序的通知中心。

(继承自 NSObject)

方法

AddObserver(NSObject, NSString, NSKeyValueObservingOptions, IntPtr)

使用 NSString keyPath) 注册在外部 (观察到的对象。   观察到的更改将调度到观察者的 对象 ObserveValue(NSString, NSObject, NSDictionary, IntPtr) 方法。

(继承自 NSObject)
AddObserver(NSObject, Selector, NSString, NSObject)

低级别 add-observer API

AddObserver(NSObject, String, NSKeyValueObservingOptions, IntPtr)

使用 string keyPath) 注册在外部 (观察到的对象。   观察到的更改将调度到观察者的 对象 ObserveValue(NSString, NSObject, NSDictionary, IntPtr) 方法。

(继承自 NSObject)
AddObserver(NSString, Action<NSNotification>)

为指定的通知添加观察程序

AddObserver(NSString, Action<NSNotification>, NSObject)

为指定的通知添加观察程序

AddObserver(NSString, NSKeyValueObservingOptions, Action<NSObservedChange>)

注册一个对象,以便使用任意方法在外部观察到。

(继承自 NSObject)
AddObserver(String, NSKeyValueObservingOptions, Action<NSObservedChange>)

注册一个对象,以便使用任意方法在外部观察到。

(继承自 NSObject)
AddObserver(String, NSObject, NSOperationQueue, Action<NSNotification>)

应用程序的通知中心。

AwakeFromNib()

从 nib 文件加载对象后调用。 重写程序必须调用 base。AwakeFromNib () 。

(继承自 NSObject)
BeginInvokeOnMainThread(Action)

应用程序的通知中心。

(继承自 NSObject)
BeginInvokeOnMainThread(Selector, NSObject)

在主 UI 线程上异步调用指定的代码。

(继承自 NSObject)
Bind(NSString, NSObject, String, NSDictionary)

应用程序的通知中心。

(继承自 NSObject)
Bind(String, NSObject, String, NSDictionary)
已过时.

应用程序的通知中心。

(继承自 NSObject)
BindingInfo(String)
已过时.

应用程序的通知中心。

(继承自 NSObject)
BindingOptionDescriptions(String)
已过时.

应用程序的通知中心。

(继承自 NSObject)
BindingValueClass(String)
已过时.

应用程序的通知中心。

(继承自 NSObject)
CommitEditing()

应用程序的通知中心。

(继承自 NSObject)
CommitEditing(NSObject, Selector, IntPtr)

应用程序的通知中心。

(继承自 NSObject)
ConformsToProtocol(IntPtr)

调用 以确定此对象是否实现指定的协议。

(继承自 NSObject)
Copy()

执行基础 Objective-C 对象的副本。

(继承自 NSObject)
DangerousAutorelease()

应用程序的通知中心。

(继承自 NSObject)
DangerousRelease()

应用程序的通知中心。

(继承自 NSObject)
DangerousRetain()

应用程序的通知中心。

(继承自 NSObject)
DidChange(NSKeyValueChange, NSIndexSet, NSString)

指示对多关系的索引发生了更改。

(继承自 NSObject)
DidChange(NSString, NSKeyValueSetMutationKind, NSSet)

应用程序的通知中心。

(继承自 NSObject)
DidChangeValue(String)

指示在指定的键上发生了更改。

(继承自 NSObject)
Dispose()

释放 NSObject 对象使用的资源。

(继承自 NSObject)
Dispose(Boolean)

释放 NSObject 对象使用的资源。

(继承自 NSObject)
DoesNotRecognizeSelector(Selector)

指示此对象无法识别指定的选择器。

(继承自 NSObject)
Equals(NSObject)

应用程序的通知中心。

(继承自 NSObject)
Equals(Object)

应用程序的通知中心。

(继承自 NSObject)
ExposedBindings()

应用程序的通知中心。

(继承自 NSObject)
GetBindingInfo(NSString)

应用程序的通知中心。

(继承自 NSObject)
GetBindingOptionDescriptions(NSString)

应用程序的通知中心。

(继承自 NSObject)
GetBindingValueClass(NSString)

应用程序的通知中心。

(继承自 NSObject)
GetDictionaryOfValuesFromKeys(NSString[])

检索指定键的值。

(继承自 NSObject)
GetHashCode()

为当前实例生成哈希代码。

(继承自 NSObject)
GetMethodForSelector(Selector)

应用程序的通知中心。

(继承自 NSObject)
GetNativeField(String)
已过时.

应用程序的通知中心。

(继承自 NSObject)
GetNativeHash()

应用程序的通知中心。

(继承自 NSObject)
Init()

应用程序的通知中心。

(继承自 NSObject)
InitializeHandle(IntPtr)

应用程序的通知中心。

(继承自 NSObject)
InitializeHandle(IntPtr, String)

应用程序的通知中心。

(继承自 NSObject)
Invoke(Action, Double)

应用程序的通知中心。

(继承自 NSObject)
Invoke(Action, TimeSpan)

应用程序的通知中心。

(继承自 NSObject)
InvokeOnMainThread(Action)

应用程序的通知中心。

(继承自 NSObject)
InvokeOnMainThread(Selector, NSObject)

在主 UI 线程上同步调用指定的代码。

(继承自 NSObject)
IsEqual(NSObject)

应用程序的通知中心。

(继承自 NSObject)
IsKindOfClass(Class)

应用程序的通知中心。

(继承自 NSObject)
IsMemberOfClass(Class)

应用程序的通知中心。

(继承自 NSObject)
MarkDirty()

将常规对等对象 (IsDirectBinding 为 true) 提升为 toggleref 对象。

(继承自 NSObject)
MutableCopy()

创建指定 NSObject 的可变副本。

(继承自 NSObject)
ObjectDidEndEditing(NSObject)

应用程序的通知中心。

(继承自 NSObject)
ObserveValue(NSString, NSObject, NSDictionary, IntPtr)

指示指定 keyPath 相对于此对象的值已更改。

(继承自 NSObject)
PerformSelector(Selector)

应用程序的通知中心。

(继承自 NSObject)
PerformSelector(Selector, NSObject)

应用程序的通知中心。

(继承自 NSObject)
PerformSelector(Selector, NSObject, Double)

在当前实例上调用选择器,如果 obj 不为 null,则将其作为单个参数传递。

(继承自 NSObject)
PerformSelector(Selector, NSObject, Double, NSString[])

应用程序的通知中心。

(继承自 NSObject)
PerformSelector(Selector, NSObject, NSObject)

应用程序的通知中心。

(继承自 NSObject)
PerformSelector(Selector, NSThread, NSObject, Boolean)

应用程序的通知中心。

(继承自 NSObject)
PerformSelector(Selector, NSThread, NSObject, Boolean, NSString[])

应用程序的通知中心。

(继承自 NSObject)
PostNotification(NSNotification)

发布一条通知,该通知将广播给订阅该通知的每个人。

PostNotificationName(String, NSObject)

应用程序的通知中心。

PostNotificationName(String, NSObject, NSDictionary)

应用程序的通知中心。

PrepareForInterfaceBuilder()

应用程序的通知中心。

(继承自 NSObject)
RemoveObserver(NSObject)

应用程序的通知中心。

RemoveObserver(NSObject, NSString)

阻止指定的观察程序接收指定 keyPath 的更改值的进一步通知。

(继承自 NSObject)
RemoveObserver(NSObject, NSString, IntPtr)

阻止指定的观察程序接收指定 keyPath 和上下文的更改值的进一步通知。

(继承自 NSObject)
RemoveObserver(NSObject, String)

阻止指定的观察程序接收指定 keyPath 的更改值的进一步通知。

(继承自 NSObject)
RemoveObserver(NSObject, String, IntPtr)

阻止指定的观察程序接收指定 keyPath 和上下文的更改值的进一步通知。

(继承自 NSObject)
RemoveObserver(NSObject, String, NSObject)

应用程序的通知中心。

RemoveObservers(IEnumerable<NSObject>)

在一次调用中删除多个观察程序。

RespondsToSelector(Selector)

此对象是否识别指定的选择器。

(继承自 NSObject)
SetNativeField(String, NSObject)
已过时.

应用程序的通知中心。

(继承自 NSObject)
SetNilValueForKey(NSString)

将指定键的值设置为 null。

(继承自 NSObject)
SetValueForKey(NSObject, NSString)

将键指定的属性的值设置为指定值。

(继承自 NSObject)
SetValueForKeyPath(IntPtr, NSString)

创建非托管对象的托管表示形式时使用的构造函数;由运行时调用。

(继承自 NSObject)
SetValueForKeyPath(NSObject, NSString)

设置可使用键路径访问的属性的值。

(继承自 NSObject)
SetValueForUndefinedKey(NSObject, NSString)

指示尝试将值写入未定义的键。 如果未重写,则引发 NSUndefinedKeyException。

(继承自 NSObject)
SetValuesForKeysWithDictionary(NSDictionary)

将此 NSObject 的值设置为指定字典中的值。

(继承自 NSObject)
ToString()

返回当前实例值的字符串表示形式。

(继承自 NSObject)
Unbind(NSString)

应用程序的通知中心。

(继承自 NSObject)
Unbind(String)
已过时.

应用程序的通知中心。

(继承自 NSObject)
ValueForKey(NSString)

返回与指定键关联的属性的值。

(继承自 NSObject)
ValueForKeyPath(NSString)

返回可使用键路径访问的属性的值。

(继承自 NSObject)
ValueForUndefinedKey(NSString)

指示尝试读取未定义键的值。 如果未重写,则引发 NSUndefinedKeyException。

(继承自 NSObject)
WillChange(NSKeyValueChange, NSIndexSet, NSString)

指示指定键中指定索引的值即将更改。

(继承自 NSObject)
WillChange(NSString, NSKeyValueSetMutationKind, NSSet)

应用程序的通知中心。

(继承自 NSObject)
WillChangeValue(String)

指示指定键的值即将更改。

(继承自 NSObject)

扩展方法

ObjectDidBeginEditing(NSObject, INSEditor)

应用程序的通知中心。

ObjectDidEndEditing(NSObject, INSEditor)

应用程序的通知中心。

GetValidModes(NSObject, NSFontPanel)

应用程序的通知中心。

ValidateToolbarItem(NSObject, NSToolbarItem)

应用程序的通知中心。

GetDebugDescription(INSObjectProtocol)

应用程序的通知中心。

AcceptsPreviewPanelControl(NSObject, QLPreviewPanel)

应用程序的通知中心。

BeginPreviewPanelControl(NSObject, QLPreviewPanel)

应用程序的通知中心。

EndPreviewPanelControl(NSObject, QLPreviewPanel)

应用程序的通知中心。

GetAccessibilityCustomRotors(NSObject)

获取适用于 this 对象的 对象的数组UIAccessibilityCustomRotor

SetAccessibilityCustomRotors(NSObject, UIAccessibilityCustomRotor[])

设置适用于 this 对象的 对象数组UIAccessibilityCustomRotor

适用于

另请参阅