2014-10-08 62 views
0

我好奇传递给完成处理程序NSAlert方法是什么不变在NSAlert的完成处理程序中需要什么编号?

- (void)beginSheetModalForWindow:(NSWindow *)sheetWindow completionHandler:(void (^)(NSModalResponse returnCode))handler 

它是一个数字,如NSModalResponseStop = -1000或NSModalResponseAbort = -1001? 如何在警报中有多个按钮的情况下知道按下了哪个按钮?

回答

1

按钮返回值与beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo: 相同。 NSAlert documentation中的“按钮返回值”下列出了可能的值:

按钮的警报返回值取决于位置。以下常量描述了警报前三个按钮的返回值(假定语言从左向右读取)。

enum { NSAlertFirstButtonReturn = 1000, NSAlertSecondButtonReturn = 1001, NSAlertThirdButtonReturn = 1002 };