Wie Eröffne ich ein NSSheet in Mavericks?
In Mavericks, die Methoden zum öffnen und schließen NSSheets geändert hat. Und machen es härter, die Release Notes nicht mit der aktuellen Dokumentation (siehe unten).
Ich versuche, dies zu tun:
MainSheetController (NSWindowController):
-(IBAction)callSheet:(id)sender {
[sheetController openSheet];
}
SheetController (NSObject):
(void)openSheet {
[[NSBundle mainBundle] loadNibNamed:sheetName owner:self topLevelObjects:nil];
NSLog(@"1");
[self.mainWindowController.window beginSheet:self.sheet completionHandler:nil];
NSLog(@"2");
}
Bekomme ich zu 2, mit keine Fehler oder Warnungen, aber kein Blatt..
Aktuelle Dokumentation:
#if NS_BLOCKS_AVAILABLE
- (void)beginSheet:(NSWindow *)sheetWindow completionHandler:(void (^)(NSModalResponse returnCode))handler NS_AVAILABLE_MAC(10_9);
- (void)beginCriticalSheet:(NSWindow *)sheetWindow completionHandler:(void (^)(NSModalResponse returnCode))handler NS_AVAILABLE_MAC(10_9);
#endif
- Wenden Sie sich mit diesem link stackoverflow.com/questions/19561754/...
- Diese Antwort ist falsch von Mavericks ab, die
[NSApp beginSheet:...]
Methode ist veraltet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
in der UserLoginWindowController
In Ihre nib-Datei, stellen Sie sicher, dass die "Visible At Launch" - flag ist freigelassen für die Fenster.
initWithWindow:(NSWindow *)window
genannt wird, mit einemnil
window
parameter und die Platte wird nicht angezeigt.Ich herausgefunden, wie dies zu tun. Hoffe, es ist ok zu posten..
MainWindow.h
MainWindow.m
Mit dieser Methode neu in 10.9,ich muss nicht eine spezielle Blatt-Steuerung, und-Kontrolle bleibt, zitieren lokale.