code: func (a *Application) SetFocus(p Primitive) *Application {
  	a.Lock()
  	if a.focus != nil {
  		a.focus.Blur()
  	}
  	a.focus = p
  	if a.screen != nil {
  		a.screen.HideCursor()
  	}
  	a.Unlock()
  	if p != nil {
  		p.Focus(func(p Primitive) {
  			a.SetFocus(p)
  		})
  	}
  
  	return a
  }
docs: // SetFocus sets the focus on a new primitive. All key events will be redirected
  // to that primitive. Callers must ensure that the primitive will handle key
  // events.
  //
  // Blur() will be called on the previously focused primitive. Focus() will be
  // called on the new primitive.