2015-08-21 11 views
14

Ho creato una vista personalizzata (Quantity View) con il file nib in Swift. Ho creato alcuni IBOutlets & IBActions (per pulsanti, etichette, ecc.) Nella mia visualizzazione personalizzata.Nascondere le uscite dall'ispettore Connections per Custom View

ho cercato di utilizzare questa visualizzazione personalizzata (Quantità View) assegnando nome classe ad un UIView nel mio storyboard. Mi mostra tutti gli IBOutlets & IBActions nel Ispettore connessioni, come mostrato in questa schermata: screenshot.

Voglio solo mostrare solo delegate per la visualizzazione personalizzata.

possibile risposta:

ho pensato che posso usare il -viewWithTag per ottenere il punto di vista, invece di punti vendita.

Ma, voglio sapere se è possibile avere Outlets o se c'è un modo migliore per farlo?

Quali sono gli altri modi possibili (ottimali) per gestire questa situazione?

+1

Sono stati aggiunti gli attributi IBOutlet per le proprietà e le azioni. Perché non vuoi che Connections Inspector lo mostri? IBOutlet è l'interruttore di Connections Inspector. –

+0

@HarrisonXi: La mia visualizzazione personalizzata è così complessa che non desidero progettarlo solo tramite la codifica, quindi ho scelto xib separato per progettarlo, ma per accedere agli altri componenti dell'interfaccia utente devo prendere 'IBOutlet's in la classe di visualizzazione personalizzata e inoltre non voglio usare il metodo 'viewWithTag'. Voglio solo sapere se c'è un altro modo. – Bhavin

+0

No, non è possibile nascondere IBOutlets e IBAction Connections Inspector. Se non vuoi mostrare in Connections Inspector, rimuovi la parola chiave IBOutlet dalla proprietà. – Sonu

risposta

0

Penso che il tuo modo sia corretto. Ma a volte Xcode non funziona correttamente. Di seguito rende le IBOutlets e IBActions riapparire e funziona correttamente:

  1. Pulire progetto il progetto in Xcode.

  2. Chiudere completamente Xcode.

  3. Elimina tutto il contenuto di ~/Library/Developer/Xcode/DerivedData /.

  4. Riavvia MacOS per ogni evenienza.

Spero che risolvere questo :)

2

si può anche considerare la seguente soluzione: Potete prendere le subviews dei vostri QuantityViews (visualizzazione personalizzata) e si possono identificare i punti di vista specifici per la sua cornice origine. Nota: è necessario conoscere il riquadro delle schermate delle visualizzazioni personalizzate

1

Non è possibile nascondere IBOutlet dallo storyboard se si dichiarano i membri della classe come IB (IBOutlet o IBActions).

IBOutlet o IBActions sono solo indicatori per il generatore di interfacce in modo che possa mostrare i nomi su di esso quando si tenta di associarli effettivamente chiama il valore setValue: forKey: per impostare il riferimento della vista alla proprietà IBOutlet.

Ora se si tenta di accedere a una sottoview dalla classe del proprietario del file senza IBoutlet è necessario avere un puntatore per puntarlo, quindi per quello è possibile ottenere il riferimento utilizzando ObjectID che è assegnato alla sottoview dall'interfaccia costruttore o puoi ottenerlo usando viewWithTag: metodo.

L'ObjectID che è necessario trovare sempre quando si aggiunge o sostituisce una vista secondaria dalla vista, quindi l'approccio migliore e conveniente è utilizzare la proprietà tag della classe UIView.

Quindi la mia conclusione a questo problema è di accedere alle viste utilizzando il metodo viewWithTag che hai citato in precedenza.