diff --git a/redo/area_darwin.go b/redo/area_darwin.go index c4c3d26..ff277e8 100644 --- a/redo/area_darwin.go +++ b/redo/area_darwin.go @@ -189,6 +189,12 @@ func areaView_flagsChanged(self C.id, e C.id, data unsafe.Pointer) { sendKeyEvent(self, ke, data) } +//export areaView_defocuses +func areaView_defocuses(data unsafe.Pointer) C.BOOL { + a := (*area)(data) + return toBOOL(a.handler.Defocuses()) +} + func (a *area) id() C.id { return a._id } diff --git a/redo/area_darwin.m b/redo/area_darwin.m index f99737f..37bcac7 100644 --- a/redo/area_darwin.m +++ b/redo/area_darwin.m @@ -93,6 +93,12 @@ event(keyDown, areaView_keyDown) event(keyUp, areaView_keyUp) event(flagsChanged, areaView_flagsChanged) +- (BOOL)resignFirstResponder +{ + // TODO the custom NSApplication sendEvent: means this will never happen + return areaView_defocuses(self->goarea); +} + @end Class getAreaClass(void) diff --git a/redo/zz_test.go b/redo/zz_test.go index edc0e1e..3ca54e2 100644 --- a/redo/zz_test.go +++ b/redo/zz_test.go @@ -142,6 +142,7 @@ func (tw *testwin) make(done chan struct{}) { NewVerticalStack( NewButton("Small"), NewButton("Small"), + NewTextField(), NewArea(200, 200, &areaHandler{*defocuses}))) tw.wsmall.Show() }