Hallo,
mir präsentiert sich da ein etwas merkwürdiges Verhalten beim Beenden eines ViewControllers (via NSTabViewController gesteuert). Beendet wird dieser mit einem Button, welcher mit dem FirstResponder (dismissController()) verbunden ist. Dies funktioniert einwandfrei solange:
- der Butten direkt betätigt wird
- bei Key Equivalent die Return-Taste eingetragen ist
- nicht jedoch wenn bei Key Equivalent die ESC-Taste hinterlegt wird
Wenn die ESC-Taste eingetragen ist, erhalte ich nachfolgende Fehlermeldung:
2020-05-28 11:07:19.033637+0200 Adressbuch[3577:169065] *** Assertion failure in -[Adressbuch.VCTop dismissViewController:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1671.60.109/Controllers/NSViewController.m:858
2020-05-28 11:07:19.134854+0200 Adressbuch[3577:169065] [General] An uncaught exception was raised
2020-05-28 11:07:19.134942+0200 Adressbuch[3577:169065] [General] dismissViewController:: Error: maybe this view controller was not presented?
2020-05-28 11:07:19.141865+0200 Adressbuch[3577:169065] [General] (
0 CoreFoundation 0x00007fff4a95aacd __exceptionPreprocess + 256
1 libobjc.A.dylib 0x00007fff7505ea17 objc_exception_throw + 48
2 CoreFoundation 0x00007fff4a9757e6 +[NSException raise:format:arguments:] + 98
3 Foundation 0x00007fff4cc16791 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
4 AppKit 0x00007fff48423b02 -[NSViewController dismissViewController:] + 294
Im First Responder des VC habe ich bereits nachgesehen, die ESC-Taste wurde da keiner weiteren Methode zugeordnet.
Was den ganzen Vorgang noch irritierender werden lässt, ist, dass der zweite ViewController des NSTabViewController keine Probleme hat sich mit der ESC-Taste ordnungsgemäß beenden zu lassen.
Woran liegt dies und wie kann ich dies unterbinden bzw. lösen?
Nachtrag:
Nun bin ich vollkommen irritiert, denn wenn die Reihenfolge in der die VC des NSTabViewController angezeigt werden ändere - sprich zuerst den 2.'ten VC anzeigen lasse, funktioniert auch das Beenden des ersten VC mit der ESC-Taste.
Nachtrag2:
Nachfolgende Aktion habe ich zur Eingrenzung des Fehler durchgeführt:
VC und Segue gelöscht und neu angelegt -> Fehlermeldung bleibt weiterhin bestehen
Alle Objekte des VC gelöscht; bis auf den NSButton -> Verlassen des VC mittels eingetragener ESC-Taste funktioniert
Alle Objekte des VC wieder hergestellt und im Anschluss alle NSTextField Objekte disabled -> ESC-Taste funktioniert
Fazit: Ist nur ein NSTextfield aktiv, dabei spielt es keine Rolle welches, dann erscheint bei Verwendung der ESC-Taste obige Fehlermeldung.
Bin nun mit meinem Latein am Ende. Ich hoffe jemand kann mir hier einen guten Rat bzw. Lösung mitteilen.
Danke mal vorab.
mir präsentiert sich da ein etwas merkwürdiges Verhalten beim Beenden eines ViewControllers (via NSTabViewController gesteuert). Beendet wird dieser mit einem Button, welcher mit dem FirstResponder (dismissController()) verbunden ist. Dies funktioniert einwandfrei solange:
- der Butten direkt betätigt wird
- bei Key Equivalent die Return-Taste eingetragen ist
- nicht jedoch wenn bei Key Equivalent die ESC-Taste hinterlegt wird
Wenn die ESC-Taste eingetragen ist, erhalte ich nachfolgende Fehlermeldung:
2020-05-28 11:07:19.033637+0200 Adressbuch[3577:169065] *** Assertion failure in -[Adressbuch.VCTop dismissViewController:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1671.60.109/Controllers/NSViewController.m:858
2020-05-28 11:07:19.134854+0200 Adressbuch[3577:169065] [General] An uncaught exception was raised
2020-05-28 11:07:19.134942+0200 Adressbuch[3577:169065] [General] dismissViewController:: Error: maybe this view controller was not presented?
2020-05-28 11:07:19.141865+0200 Adressbuch[3577:169065] [General] (
0 CoreFoundation 0x00007fff4a95aacd __exceptionPreprocess + 256
1 libobjc.A.dylib 0x00007fff7505ea17 objc_exception_throw + 48
2 CoreFoundation 0x00007fff4a9757e6 +[NSException raise:format:arguments:] + 98
3 Foundation 0x00007fff4cc16791 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
4 AppKit 0x00007fff48423b02 -[NSViewController dismissViewController:] + 294
Im First Responder des VC habe ich bereits nachgesehen, die ESC-Taste wurde da keiner weiteren Methode zugeordnet.
Was den ganzen Vorgang noch irritierender werden lässt, ist, dass der zweite ViewController des NSTabViewController keine Probleme hat sich mit der ESC-Taste ordnungsgemäß beenden zu lassen.
Woran liegt dies und wie kann ich dies unterbinden bzw. lösen?
Nachtrag:
Nun bin ich vollkommen irritiert, denn wenn die Reihenfolge in der die VC des NSTabViewController angezeigt werden ändere - sprich zuerst den 2.'ten VC anzeigen lasse, funktioniert auch das Beenden des ersten VC mit der ESC-Taste.
Nachtrag2:
Nachfolgende Aktion habe ich zur Eingrenzung des Fehler durchgeführt:
VC und Segue gelöscht und neu angelegt -> Fehlermeldung bleibt weiterhin bestehen
Alle Objekte des VC gelöscht; bis auf den NSButton -> Verlassen des VC mittels eingetragener ESC-Taste funktioniert
Alle Objekte des VC wieder hergestellt und im Anschluss alle NSTextField Objekte disabled -> ESC-Taste funktioniert
Fazit: Ist nur ein NSTextfield aktiv, dabei spielt es keine Rolle welches, dann erscheint bei Verwendung der ESC-Taste obige Fehlermeldung.
Bin nun mit meinem Latein am Ende. Ich hoffe jemand kann mir hier einen guten Rat bzw. Lösung mitteilen.
Danke mal vorab.
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von OSXDev () aus folgendem Grund: Nachtrag / Nachtrag2