Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

FirstResponder e NSEvent

Featured Replies

Postado

Oi pessoal, estou desenvolvendo um aplicativo pra mac e me deparei com um problema que nao consigo resolver. Ficaria muito grato se alguém pudesse me ajudar.

Tenho 4 tableViews na mesma Window, com 4 ArrayControllers (todas conectadas ao IB via IBOutlet )

Eu gostaria de implementar a possibilidade de deletar um registro a partir do teclado, e imaginei que a melhor forma fosse criando uma condicional para detectar o firstResponder.

Eu precisaria de alguma coisa que funcionasse mais ou menos assim

if (tableView1 == firstResponder)

[arrayController1 remove:nil];

agradeço qualquer ajuda

abs

Mario Gil

  • Respostas 6
  • Visualizações 925
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado
  • Autor

Resolvido,

Vou postar porque outras pessoas podem precisar dessa solução

// DELETA UM REGISTRO DA RESPECTIVA TABLEVIEW

-(void)keyDown:(NSEvent *)e

{

if (([e keyCode] == 51) || ([e keyCode] == 117))

{

if (tableViewEquipamentos == [[self window] firstResponder])

{

[equipamentoAC remove:nil];

}

if (tableViewCategoria == [[self window] firstResponder])

{

[categoriaAC remove:nil];

}

}

else

{

[super keyDown:e];

}

}

// =========================================================================================

Postado

Resolvido,

Vou postar porque outras pessoas podem precisar dessa solução

// DELETA UM REGISTRO DA RESPECTIVA TABLEVIEW

-(void)keyDown:(NSEvent *)e

{

if (([e keyCode] == 51) || ([e keyCode] == 117))

{

if (tableViewEquipamentos == [[self window] firstResponder])

{

[equipamentoAC remove:nil];

}

if (tableViewCategoria == [[self window] firstResponder])

{

[categoriaAC remove:nil];

}

}

else

{

[super keyDown:e];

}

}

// =========================================================================================

tinha pensado em algo como

if ([tableView isFirstResponder]) {
}

mas acho que pra mac isso não deve funcionar...

Editado por Gabriel Vincent

Postado
  • Autor

Oi Gabriel,

realmente pra Mac naão tem isFirstResponder, por isso usei daquele jeito,

abs

Mario

Postado

Correto, isso vai funcionar.

Mas atente pro fato que o metodo -(id)firstReponder do NSResponder não esta declarada no cabeçalho do classe, logo é um metodo privado!

Metodos privados funcionam, apesar de gerarem um warning na compilação, mas raramente são tolerados pela Apple na hora da aprovação do aplicativo. Caso o aplicativo não vá para a App Store, sem problemas.

Postado
  • Autor

Oi PCSaito,

muito obrigado pelo comentário.

Na verdade eu gostaria de enviar para a App Store também, então eu gostaria de resolver esse problema que vc apontou.

Como eu deveria fazer?

Desde já agradeço sua colaboração

Abraços

Mario Gil

  • 3 semanas depois...
Postado
  • Autor

Oi pessoal,

só para esclarecer, o método firtResponder está descrito na classe NSWindow. Acho que existe uma diferença em relação ao uso desse método para iOS e MAC.

valeu!

Mario

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.