Gérer des onglets
Bonjour,
Pour simplement améliorer mon application, je voudrais créer un système d'onglets à la Safari (voir même Adium).
Exemple :
Je clique sur un bouton, une fenêtre d'exploration m'envoie sur un site web, un nouvel onglet se crée.
Je clique sur un autre, la fenêtre d'exploration se met au premier plan et m'ajoute un 2nd onglet et charge la nouvelle page.
Je reviens sur le premier onglet, la page n'aura pas à se recharger, elle restera en mémoire.
Exactement comme Safari en fait.
Quelqu'un aurait une idée ?
Louka.
Pour simplement améliorer mon application, je voudrais créer un système d'onglets à la Safari (voir même Adium).
Exemple :
Je clique sur un bouton, une fenêtre d'exploration m'envoie sur un site web, un nouvel onglet se crée.
Je clique sur un autre, la fenêtre d'exploration se met au premier plan et m'ajoute un 2nd onglet et charge la nouvelle page.
Je reviens sur le premier onglet, la page n'aura pas à se recharger, elle restera en mémoire.
Exactement comme Safari en fait.
Quelqu'un aurait une idée ?
Louka.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et quand tu cliques, tu peux par exemple faire une tabView sans afficher les tab et tu choisis le bon tab quand on clique ds la view/onglet.
Donc même avec ton explication, je ne vois pas comment procéder.
à‰videmment une tabView c'est plus simple car les onglets se resize automatiquement si il y en a bcp. Mais je ne vois pas comment mémoriser chaque contenu de la webview :crackboom:-
En effet, à ma connaissance, pour obtenir des onglets à la Safari, une custom view est le seul moyen.
Si oui, je n'aurai pas trop de problème à le faire.
Sinon, va me falloir de l'aide
Initialiser à la volée une webview n'est vraiment pas dur: [[WebView alloc] initWithFrame:NSMakeRect(0.0,0.0,100.0,100.0)]; (la taille n'a pas vraiment d'importance, mais il faut initialiser avec initWithFrame: ) et après tu l'ajoutes dans un NSTabViewItem, également initialisé par code et tu rajoutes ce tabviewitem à ta tabview (même si tu veux utiliser des tabs persos, il est plus simple d'utiliser une tabview sans tabs).
Fais une recherche sur PSMTabBarControl sous Google.
Y a un gars qui a fait un module (palette IB+framework) que je trouve pas mal du tout.
Par contre c'est sous licence BSD ou GPL je crois donc fais gaffe si ton appli n'est pas Open Source !
Je l'ai récupéré et je trouve ça pas mal du tout.
C'est complètement lié aux NSTabView par contre.
a+
Le problème c'est que quand on supprime une tabView, j'aimerai que la webview initialisée soit relâchée ...
L'autorelease devrait marché non ? J'avous que je ne comprend pas très bien à quel moment agit l'autorelease. Alors j'ai pense qu'à partir du moment où je supprimerai un tabViewItem, son contenu sera automatiquement relâché (myWebView autorelease)...
Louka.
[Fichier joint supprimé par l'administrateur]
L'autorelease permet de faire un release de ton objet peu aprés la fin de la méthode où est placé l'autorelease. En gestion mémoire, dans le cas présent tout ce dont tu as a te soucier, c'est de faire un release pour chaque init que tu as faites. La tabview fera un retain en interne sur le tabview item ajouté lors du addTabView, et le tabview item fera un retain en interne de la webview ajoutée. Ce petit monde effectuera des releases internes lors du removeTabViewItem.
Sinon, petit détail, comme le dis Renaud plus haut, pour l'initialisation de la webview, il est conseillé d'utiliser l'initialisateur désigné initWithFrame.
Okay merci pour les infos
Je vais faire un [[WebView alloc] initWithFrame:NSMakeRect(0,0,0,0) frameName:nil groupName:nil];
@+