Re: self.myTextField.stringValue = @"" fails
Re: self.myTextField.stringValue = @"" fails
- Subject: Re: self.myTextField.stringValue = @"" fails
- From: Antonio Nunes <email@hidden>
- Date: Wed, 09 May 2012 05:48:18 +0200
On 8 May 2012, at 23:10, Corbin Dunn wrote:
>
> On May 8, 2012, at 1:35 PM, Antonio Nunes <email@hidden> wrote:
>
>> On 8 May 2012, at 21:46, Andy Lee wrote:
>>
>>> Bizarre indeed. Out of curiosity, are you using ARC? Maybe the compiler is confusedly zeroing a non-weak pointer. I'm *really* grasping at straws, though.
>>
>> No ARC. No garbage collection either.
>>
>>> Are there any bindings on the text field? Again, I don't see why it would matter; just wondering.
>>
>> No bindings.
>>
>>>> I don't release @"" anywhere, so that is indeed very, very unlikely. Also, if I avoid the exception and assign @"" to a text field a bit later on in another piece of code, it works just fine.
>>>
>>> The same text field (toolbarPageNumberTextField), or a different one?
>>
>> Another text field. I'm seeing different behaviour though between letting the code run naturally to the empty string assignment and manually moving the PC to the line in question. I'll take another look at it after a good night's sleep...
>
> You may have a formatter on the cell, and it is returning nil.
>
> Also, you are mixing what you are using the text field for. In some cases you are treating it like an integer, and in others a string. I don't recommend using integerValue in your case; instead, convert that integer to a string (and vice-versa when you read the value via self.toolbarPageNumberTextField.integerValue). If you fix those things your problem will probably go away.
Thanks Corbin,
Indeed, there is a number formatter on the cell, so probably that is causing the issue then. To make it possible to have an empty text field when there are no pages in the document I changed the symbol for 0:
[self.toolbarPageNumberTextField.formatter setZeroSymbol:@""]; (I did not know this is possible, until a few minutes ago.)
Then changed all instances of:
self.toolbarPageNumberTextField.stringValue = @"";
to
self.toolbarPageNumberTextField.stringValue = @"0";
Following your recommendation I also changed
self.toolbarPageNumberTextField.integerValue = self.pageListController.selectionIndex + 1;
to
self.toolbarPageNumberTextField.stringValue = [NSString stringWithFormat:@"%d", self.pageListController.selectionIndex + 1];
Why do you recommend against using integerValue? For me it would make more sense to always use integerValue, especially now that I can set the value to 0 to show an empty text field, since we're conceptually representing numbers here, not strings.
-António
-----------------------------------------------------------
Don't believe everything you think
-----------------------------------------------------------
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden