2017-06-10 2 views
0

Ich versuche, einen StringValue zu einem NSTokenField (eine Unterklasse von NSTextField), aber ich habe festgestellt, dass, wenn die Zeichenfolge mit einem Leerzeichen beginnt, es entfernt. Ich möchte den Raum behalten. Ich habe versucht, einen Formatierer ohne Glück anzuwenden. d. h .:Stop NSTokenField von Trimmen Leerzeichen

tokenField.stringValue = " 1" 

Dies wird tatsächlich "1" im Feld auslesen.

Ich möchte auch eine ganze Zahl formatieren, aber auch Nullen davor halten. d.h .:

tokenField.stringValue = "001" 

Dies wird das Auslesen auch "1" im Feld.

Ich habe versucht, verschiedene Funktionen ohne Glück zu übersteuern. Irgendwelche Ideen?

Dank!

+0

Sie müssen den Formatierer des Textfelds überprüfen. Verwenden Sie ein XIB/Storyboard? –

+0

Ich fand eine Teillösung und das war in einer benutzerdefinierten Lösung. Das Problem ist, dass ich ein NSTokenField verwende, das eine Unterklasse von NSTextField ist. Das Anwenden eines Formatierungsprogramms scheint nicht richtig zu funktionieren. – JoeBayLD

+0

Haben Sie die Dokumentation zu 'NSTokenField' gelesen? Whitespace-Trimmen ist etwas Besonderes. – Willeke

Antwort

0

Von the documentation of NSTokenField:

In OS X v10.4, trimmt NSTokenField Leerzeichen um Token, aber es trimmen nicht Leerzeichen in macOS Versionen 10.5.0 und 10.5.1. In OS X 10.5.2 erhalten Sie Whitespace-Trimming-Verhalten, indem Sie entweder mit der v10.4-Binärdatei oder mit der v10.5-Binärdatei verknüpfen und nicht die Methode tokenField (_: replicatedObjectForEditing :) implementieren. Wenn Sie das Whitespace-Trimming-Verhalten nicht möchten, verknüpfen Sie die Binärdatei v10.5 und implementieren Sie diese Methode. Geben Sie die Bearbeitungszeichenfolge zurück, wenn Sie kein dargestelltes Objekt haben.

Ok, es sich ein wenig alt und der Name der Methode ist nicht richtig, aber es sagt:

Wenn Sie nicht die Leer-Trimm Verhalten wollen, implementieren tokenField (_: representedObjectForEditingString :), Rückgabe der Bearbeitungszeichenfolge, wenn Sie kein dargestelltes Objekt haben.

+0

Ah! Ich dachte, ich würde diese Funktion implementieren. jetzt bin ich. Vielen Dank! – JoeBayLD

Verwandte Themen