【发布时间】:2013-04-25 12:06:33
【问题描述】:
我们正在开发一个菜单栏项应用,
我很想写一个NSAlert 类别,在NSPopover 中显示警报,它出现在NSStatusItem 下方。
到目前为止,该类别实现了以下新方法:
- (void) runAsMenuItemPopUpWithCompletionBlock:(NSAlertCompletionBlock)block {
// Get content view of NSAlert
NSView *alertContentView = [self.window contentView];
// Ask the menu item to show the view as a NSPopOver
[[GFMenuItem sharedInstance] popOverView:alertContentView];
// (...) Handle response with callback
}
但是打开警报
NSAlert *alert = [NSAlert alertWithMessageText:@"Learn more?" defaultButton:@"Learn more" alternateButton:@"Cancel" otherButton:nil informativeTextWithFormat:@"Do you want to view detailed information?"];
[alert runAsMenuItemPopUpWithCompletionBlock:nil];
产生以下可视化效果:
问题是第三个空按钮,帮助按钮和复选框,没有设置显示。如果它们尚未设置,如何摆脱它们的任何想法?
【问题讨论】:
-
如果您遇到的行为与文档所说的相矛盾(在这种情况下,文档明确表示为
otherButton:参数提供nil应该会导致该按钮不被创建)那么你应该向 Apple 提交错误。 -
似乎不是真正的错误,请参阅我的答案。还是谢谢!
标签: objective-c cocoa nsalert nspopover