[OSX] @IBInspectable qui reste à la valeur par défaut.
Pyroh
Membre
J'ai ce bout de code ci dans une sous classe d'un NSViewController :
/// Tell the controller if it should animate transiton to next page.
@IBInspectable public var forwardTransition: Bool = true
/// Tell the controller if it should animate transiton to previous page.
@IBInspectable public var backwardTransition: Bool = true
/// Tell the controller if it should animate transiton back to the first page.
@IBInspectable public var homeTransition: Bool = true
/// Tell the controller if it should embed a navigation view in each page.
@IBInspectable public var useNavigation: Bool = true
/// The navigation controller's storyboard ID.
///
/// - note: If `nil` the default navigation controller will be used.
@IBInspectable public var navigationId: String?
Donc, et selon tout vraisemblance, je peux modifier ces valeurs directement dans Interface Builder.
Seulement que je le fasse ou pas les valeurs sont toujours celles par default.
J'ai testé tout ce qui me passait par la tête comme d'initialiser les valeurs dans l'init, ça ne fonctionne pas... J'ai mis des didSet avec un print de la valeur et bizarrement c'est la valeur par default qui s'affiche à chaque fois.
J'ai testé avec Xcode 7.2.1 et 7.3 beta 2, la beta 3 est en DL je vais bien voir mais j'y crois pas trop.
Alors bug d'Xcode, erreur de ma part ou @IBInspectable qui ne fonctionne que pour les NSView (dans ce cas ils pourraient le dire...) ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je ne comprend pas ce que tu veux dire mais ce code suivant marche :
Oui mais là c'est une subclass de NSViewController...
Visiblement internet a l'air d'accord de dire que c'est impossible de le faire avec des subclasses d'UIViewController. J'imagine que c'est pareil pour NSViewController mais les User Defined Defined Runtime Attributes ne fonctionnent pas non plus.
Selon les docs :
https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/BuildingCocoaApps/WritingSwiftClassesWithObjective-CBehavior.html#//apple_ref/doc/uid/TP40014216-CH5-XID_60(regardes le section Live Rendering
C'est seulement possible avec les subclasses d'UIView ou de NSView
Hello,
Je ne vois pas de raison pour que ça ne marche pas. Comment tu crées ton controller ?
(Il faudra que tu le crées via interface builder). Fais un test avec un storyboard incluant un objet controller.
Edit :
Oui tu as bien raison, j'ai mal compris ta question. Je viens de tester sur un UIViewController et j'ai le même cas que toi.
Edit 2:
ça a marché finalement sur un UIViewController.
Samir, tu as raison. Je viens de ajouter un @IBInspectable var dans un UIViewController subclass, qui j'ai marqué @IBDesignable et, hey presto ! ça marche !!!
Si aucun de vous 2 n'a fait plus que ce que Joanna a expliqueÌ dans son dernier post alors je peux vous certifier que ça ne fonctionne pas avec NSViewController et cette meÌthode.
Désolé je ne comprend pas ton message . ça ne marche pas ?
J'ai testé avec NSViewController aussi et je ne vois aucun souci. Je suis sous Xcode 7.2
Non ça ne fonctionne pas pourtant j'ai fait pareil...
Vous le faites avec des storyboards sur OSX ?
Oui je peux en montrer une partie (il sera open-source mais il est long)
Il voilà les lignes qui nous intéressent. Le code m'a l'air correct et compile sans warning. Rien dans la console non plus...
Avec la delegation j'ai contourné le problème mais si je pouvais au moins avoir ces 2 propriétés accessibles depuis IB ça serait cool. Sinon l'utilisateur aura à écrire un delegate avec 3 lignes dedans.
Quoiqu'il en soit ça ressemble à un énième bug de Xcode tout ça...
J'ai aucun souci avec ton code su ma machine. Xcode Version 7.2 (7C68)
J'ai Xcode 7.2.1 ici.
J'ai creÌeÌ un nouveau storyboard, avec des trucs tout neufs mais ça reste désespérément à nil...
Je vais finir l'impleÌmentation, tout taper dans un beau framework et retester avec projet un from scratch.
Le pire c'est que c'est bien renseigneÌ dans le code du storyboard mais Xcode doit encore faire des siennes. Si seulement ils mettaient autant d'énergie dans les dev tools osx que ceux d'iOS...