Continuously update value bug in 10.13


Steve Mills
 

Since we finally were able to move up to 10.13 (printing company, historically slow to change), I've noticed that text fields in views and in cell-based table views now exit editing as soon as any character is entered. Setting a symbolic breakpoint on resignFirstResponder I found that the bindings setting "Continuously update value" is causing this. Has this been fixed in 10.14?

Here's the stack down to where it matters.

#0 0x00007fff4de0d6c5 in -[NSTextView(NSSharing) resignFirstResponder] ()
#1 0x00007fff4dd1fc9f in -[NSWindow _realMakeFirstResponder:] ()
#2 0x00007fff4dd08dfb in -[NSControl abortEditing] ()
#3 0x00007fff4e569b87 in _NSDiscardEditingForView ()
#4 0x00007fff4de67a21 in -[NSValueBinder discardEditing] ()
#5 0x00007fff4de269c5 in -[NSController discardEditing] ()
#6 0x00007fff4de73cb4 in -[NSArrayController setContent:] ()
#7 0x00007fff4de7393e in -[NSArrayDetailBinder _refreshDetailContentInBackground:] ()
#8 0x00007fff527ed9c9 in NSKeyValueNotifyObserver ()
#9 0x00007fff52860b9b in -[NSObject(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] ()
#10 0x00007fff4de27064 in -[NSController _notifyObserversForKeyPath:change:] ()
#11 0x00007fff4de2fbf0 in -[NSController observeValueForKeyPath:ofObject:change:context:] ()
#12 0x00007fff527ed9c9 in NSKeyValueNotifyObserver ()
#13 0x00007fff527ed27d in NSKeyValueDidChange ()
#14 0x00007fff5292ac7e in -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:usingBlock:] ()
#15 0x00007fff5292a684 in -[NSObject(NSKeyValueObservingPrivate) _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] ()
#16 0x00007fff507cd53b in -[CFPrefsSource forEachObserver:] ()
#17 0x00007fff507cdd60 in -[CFPrefsSource _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] ()
#18 0x00007fff508114d2 in __93-[CFPrefsSearchListSource deferredNotifyCausedByLoadingOfChangesFromDictionary:toDictionary:]_block_invoke ()
#19 0x00007fff50835b22 in __44-[_CFXPreferences copyObservationConnection]_block_invoke_3 ()

Steve via iPhone


Alex Zavatone
 

IIRC, there is another method that you can check, with something like didEndEditing something like that.

I remember having to go through several on iOS to find what I wanted.

On Mar 1, 2019, at 10:23 AM, Steve Mills via Groups.Io <sjmills@...> wrote:

Since we finally were able to move up to 10.13 (printing company, historically slow to change), I've noticed that text fields in views and in cell-based table views now exit editing as soon as any character is entered. Setting a symbolic breakpoint on resignFirstResponder I found that the bindings setting "Continuously update value" is causing this. Has this been fixed in 10.14?

Here's the stack down to where it matters.

#0 0x00007fff4de0d6c5 in -[NSTextView(NSSharing) resignFirstResponder] ()
#1 0x00007fff4dd1fc9f in -[NSWindow _realMakeFirstResponder:] ()
#2 0x00007fff4dd08dfb in -[NSControl abortEditing] ()
#3 0x00007fff4e569b87 in _NSDiscardEditingForView ()
#4 0x00007fff4de67a21 in -[NSValueBinder discardEditing] ()
#5 0x00007fff4de269c5 in -[NSController discardEditing] ()
#6 0x00007fff4de73cb4 in -[NSArrayController setContent:] ()
#7 0x00007fff4de7393e in -[NSArrayDetailBinder _refreshDetailContentInBackground:] ()
#8 0x00007fff527ed9c9 in NSKeyValueNotifyObserver ()
#9 0x00007fff52860b9b in -[NSObject(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] ()
#10 0x00007fff4de27064 in -[NSController _notifyObserversForKeyPath:change:] ()
#11 0x00007fff4de2fbf0 in -[NSController observeValueForKeyPath:ofObject:change:context:] ()
#12 0x00007fff527ed9c9 in NSKeyValueNotifyObserver ()
#13 0x00007fff527ed27d in NSKeyValueDidChange ()
#14 0x00007fff5292ac7e in -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:usingBlock:] ()
#15 0x00007fff5292a684 in -[NSObject(NSKeyValueObservingPrivate) _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] ()
#16 0x00007fff507cd53b in -[CFPrefsSource forEachObserver:] ()
#17 0x00007fff507cdd60 in -[CFPrefsSource _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] ()
#18 0x00007fff508114d2 in __93-[CFPrefsSearchListSource deferredNotifyCausedByLoadingOfChangesFromDictionary:toDictionary:]_block_invoke ()
#19 0x00007fff50835b22 in __44-[_CFXPreferences copyObservationConnection]_block_invoke_3 ()

Steve via iPhone



Steve Mills
 

On Mar 2, 2019, at 19:39:00, Alex Zavatone via Groups.Io <zav@...> wrote:

IIRC, there is another method that you can check, with something like didEndEditing something like that.

I remember having to go through several on iOS to find what I wanted.
I stopped on that breakpoint as well, and it doesn't help other than point out that it is indeed a bug. Changing the bound value should not cause editing to end. I just want to know if it's been fixed since 10.13.

--
Steve Mills
Drummer, Mac geek