Re: deny file-read-data after launch

2015-01-08 Thread Steve Mills
On Jan 8, 2015, at 17:18:21, Kyle Sluder  wrote:
> 
> Make sure you’re not just storing a plain path in NSUserDefaults. To maintain 
> access to a resource across app launches, you need to use a security-scoped 
> bookmark. This is an NSData that is created from an NSURL via 
> -bookmarkDataWithOptions:…
> 
> Read the Security Scoped Bookmarks and Persistent Access section of the App 
> Sandbox Design Guide for more, including what entitlements you need to enable 
> to save the appropriate kind of bookmark (app-scoped): 
> 

Thanks Graham and Kyle. So since I now need to take control of securing the url 
chosen in the path control, I can no longer just bind its value to user 
defaults in the xib, right? I've added an action method that gets called when 
the path changes, where I create a secure bookmark and store that in user 
defaults instead.

Then in awakeFromNib (for when the app launches and the window is created), I 
get the bookmark out of user defaults, resolve it securely to the url, and set 
the path control's url to that. Sound good so far?

Now I think I'm left with being granted access to that url. It's easy enough to 
do that in awakeFromNib right before I use the url to set the path control's 
url. But I'll need to keep access to it for the entire run of the app or until 
the user chooses a different folder. At what point would you suggest I call 
stopAccessingSecurityScopedResource on it? I'd need to do it before the user 
chooses a new folder, but before the NSPathControl sets its url, otherwise I'll 
lose any references to the url I've been granted access to use.

Actually, the following scheme seems to be working:

-(void) awakeFromNib
{
if(bookmark != nil) {
NSURL*  url = [NSURL URLByResolvingBookmarkData:bookmark 
options:(NSURLBookmarkResolutionWithoutUI | 
NSURLBookmarkResolutionWithSecurityScope) relativeToURL:nil 
bookmarkDataIsStale:nil error:nil];
BOOLneedToStopAccess = [url 
startAccessingSecurityScopedResource];

[self.searchPathView setURL:url];

if(needToStopAccess)
[url stopAccessingSecurityScopedResource];
}
}

Then in my method that actually does the search, do the same start/stop pair. 
Is that how start/stop is expected to be used?

--
Steve Mills
Drummer, Mac geek


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Charles Jenkins
Jens is right, and I was quite mistaken. The disaster wasn’t a problem with 
XMLParser’s deserialization at all.  

When writing out my paragraphs, I create one  node for each and put the full 
paragraph text in. My mistake was believing XMLParser would operate the same 
way, reading the full text of the  node at once. So every time my delegate’s 
parser:foundCharacters: was called, I treated the delivered string as a full 
paragraph and added newlines.

In fact, parser:foundCharacters: may be called repeatedly to deliver paragraph 
text in chunks. In my case, ampersands and curled quotes were delivered in 
their own chunks, and it was me botching the result up by inserting extraneous 
newlines. I have no excuse, because Apple’s documentation says three times that 
the string received by parser:foundCharacters: may be incomplete.

—

Charles Jenkins


On Thursday, January 8, 2015 at 12:30 PM, Jens Alfke wrote:

>  
> > On Jan 8, 2015, at 4:43 AM, Charles Jenkins  > (mailto:cejw...@gmail.com)> wrote:
> > I'm writing data to XML. When you create a node and set its string 
> > contents, the node will happily accept whatever string you give and allow 
> > you to serialize information XML deserialization cannot then recreate. In 
> > my case, the string in question contained curled quotes. I could serialize 
> > and save the data—and if I remember correctly* the output looked good when 
> > I inspected the file on disk—but reading it back and deserializing it led 
> > to disaster!
> No, it's fine for XML text to contain non-ASCII Unicode characters.
>  
> —Jens  

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: NSURL resourceValuesForKeys NSURLPathKey

2015-01-08 Thread Sean McBride
On Thu, 8 Jan 2015 16:31:18 -0800, Trygve Inda said:

>I call:
>
>NSData* bookmarkData = [url
>bookmarkDataWithOptions:NSURLBookmarkCreationMinimalBookmark
>includingResourceValuesForKeys:nil
>relativeToURL:nil
>error:&inError];
>
>And later:
>
>NSDictionary* dict = [NSURL resourceValuesForKeys:[NSArray
>arrayWithObject:NSURLPathKey] fromBookmarkData:[self bookmark]];
>if (dict)
>{
> path = [dict objectForKey:NSURLPathKey];
>}
>
>Path ends up with the correct value even though I passed nil above...

When it resolves or fails to resolve?  Probably only the former.

>includingResourceValuesForKeys:nil
>
>Is this documented behavior?

Dunno, but it reminds me of this:


>I think I should be putting NSURLPathKey in the call to create the bookmark,
>but it does seem to work without it. Thoughts?

I would put it.

Cheers,

-- 

Sean McBride, B. Eng s...@rogue-research.com
Rogue Researchwww.rogue-research.com 
Mac Software Developer  Montréal, Québec, Canada



___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

[MODERATOR] End of Thread: Re: Blurry is the New Sharp

2015-01-08 Thread Chris Hanson
Please stick to technical discussion on cocoa-dev.

If there are remaining technical questions in this thread, please ask them in 
their own threads. (And avoid off-topic derails.) 

Thanks.

 -- Chris (cocoa-dev co-mod)


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: NSURL resourceValuesForKeys NSURLPathKey

2015-01-08 Thread Ken Thomases
On Jan 8, 2015, at 6:31 PM, Trygve Inda  wrote:

> I call:
> 
> NSData* bookmarkData = [url
> bookmarkDataWithOptions:NSURLBookmarkCreationMinimalBookmark
> includingResourceValuesForKeys:nil
> relativeToURL:nil
> error:&inError];
> 
> And later:
> 
> NSDictionary* dict = [NSURL resourceValuesForKeys:[NSArray
> arrayWithObject:NSURLPathKey] fromBookmarkData:[self bookmark]];
> if (dict)
> {
> path = [dict objectForKey:NSURLPathKey];
> }
> 
> Path ends up with the correct value even though I passed nil above...
> 
> includingResourceValuesForKeys:nil
> 
> Is this documented behavior?

To my mind, yes.  The docs for that method say "In addition to the standard, 
system-defined resource properties, you can also request any custom properties 
that you provided when you created the bookmark."

What this means to me is that you can always request the standard, 
system-defined resource properties and expect to get a result.  In addition, 
you can request any custom properties that you provided when you created the 
bookmark.

Regards,
Ken


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

NSURL resourceValuesForKeys NSURLPathKey

2015-01-08 Thread Trygve Inda
I call:

NSData* bookmarkData = [url
bookmarkDataWithOptions:NSURLBookmarkCreationMinimalBookmark
includingResourceValuesForKeys:nil
relativeToURL:nil
error:&inError];

And later:

NSDictionary* dict = [NSURL resourceValuesForKeys:[NSArray
arrayWithObject:NSURLPathKey] fromBookmarkData:[self bookmark]];
if (dict)
{
 path = [dict objectForKey:NSURLPathKey];
}

Path ends up with the correct value even though I passed nil above...

includingResourceValuesForKeys:nil

Is this documented behavior?

I think I should be putting NSURLPathKey in the call to create the bookmark,
but it does seem to work without it. Thoughts?




___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Machine sleep & wake notifications in a daemon

2015-01-08 Thread Andrew Keller
On Jan 8, 2015, at 6:11 PM, Greg Parker  wrote:

> On Jan 8, 2015, at 2:54 PM, Andrew Keller  wrote:
> 
>> On Jan 8, 2015, at 5:20 PM, Ken Thomases  wrote:
>> 
>>> On Jan 8, 2015, at 4:03 PM, Andrew Keller  wrote:
>>> 
 I would like to receive machine sleep and wake notifications in my daemon. 
  In my Cocoa GUI application, I was able to easily follow the sample code 
 under Listing 1 on the page 
 , but when 
 I tried the same approach in my daemon, I received no errors or warnings 
 from Xcode or in the system console, and yet the handlers also did not 
 fire.  After poking around for a while, I have a hunch that it may have 
 something to do with the main event queue not being the same (or existing 
 at all?) in a non-Cocoa GUI application.
 
 Is it possible to have a Cocoa-style event queue in a daemon, or is there 
 another way to receive machine sleep and wake notifications from the OS in 
 a daemon?
>>> 
>>> Did you read further down that QA article you linked to listings 3 and 4?
>> 
>> Yes.  It looks very promising, but on the first try, I wasn't able to keep 
>> the run loop running (it exited immediately).  I suspect that the problem 
>> has to do with the run loop not having any input sources.  I'm currently in 
>> the middle of 
>> ,
>>  where it's explaining how to create run loop sources.  I'm learning quite a 
>> lot here, but that also means that progress is very slow at the moment.  I 
>> figured it would hurt to ping the list to see if there was a simpler 
>> solution or perhaps documentation more specialized to my objective.
>> 
>> Also, I have a feeling that there may be something missing conceptually.  
>> Suppose I do manage to keep the run loop running using a new input source.  
>> How do the OS and the application frameworks know to route the notification 
>> there?  I suspect that some additional object registration may be needed to 
>> make the run loop handle the events, or it might be a very specific input 
>> source I don't know about yet...
> 
> You shouldn't need to write your own run loop source implementation. QA1340's 
> sample code shows how it works. IORegisterForSystemPower() creates an 
> IONotificationPort that receives power notifications. 
> IONotificationPortGetRunLoopSource() creates a run loop source from that 
> notification port. CFRunLoopAddSource() adds that run loop source to the run 
> loop. Notifications sent by the OS are routed to that run loop, and when you 
> run that run loop it calls your callback function with those notifications.
> 
> You should double-check that your code is arranged the same way as QA1340's 
> code. You should also check for errors from any of those functions; perhaps 
> the notification port or run loop source is not created for some reason.

Ah!  Looks like I was being too methodical; I didn't look ahead to where the 
port is created.  (I didn't copy and paste all of the example at once; I was 
attempting to do it incrementally.)

Thanks, Ken and Greg; I'll try that when I get into work tomorrow.

Thanks,
 - Andrew Keller


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Machine sleep & wake notifications in a daemon

2015-01-08 Thread Ken Thomases
On Jan 8, 2015, at 4:54 PM, Andrew Keller  wrote:

> On Jan 8, 2015, at 5:20 PM, Ken Thomases  wrote:
> 
>> On Jan 8, 2015, at 4:03 PM, Andrew Keller  wrote:
>> 
>>> 
> 
> Yes.  It looks very promising, but on the first try, I wasn't able to keep 
> the run loop running (it exited immediately).  I suspect that the problem has 
> to do with the run loop not having any input sources.

It is true that a run loop without any input sources will exit immediately.  
However, the code in listing 3 has added an input source to the run loop:

// add the notification port to the application runloop
CFRunLoopAddSource( CFRunLoopGetCurrent(),
IONotificationPortGetRunLoopSource(notifyPortRef), 
kCFRunLoopCommonModes );


> Also, I have a feeling that there may be something missing conceptually.  
> Suppose I do manage to keep the run loop running using a new input source.  
> How do the OS and the application frameworks know to route the notification 
> there?

The code creates an IONotificationPort, creates a run loop source from that, 
and adds that source to the run loop.  That's how the system knows to route the 
notification there.  It sends the notification to all notification ports.  The 
notification port is tied to the run loop source.  Since the source was added 
to the run loop, the run loop is monitoring the notification port.

Did you modify the code?  You might try separating out the call to 
IONotificationPortGetRunLoopSource() so that you can examine its result.  Is it 
returning a non-NULL source reference?

Regards,
Ken


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: deny file-read-data after launch

2015-01-08 Thread Kyle Sluder
On Jan 8, 2015, at 2:51 PM, Steve Mills  wrote:
> 
> I'm having a problem with my app on 10.9 that I'm not sure about. The user 
> chooses a folder via NSPathControl, then I use that to do an NSMetadataQuery 
> for all images inside that folder. I don't have code signing turned on for 
> this app yet, but I do have the Sandbox capability turned on. (This is my 
> first personal project since all this stuff has been introduced.)

Sandboxing requires code signing, because that’s how it associates persistent 
data with your app (including as you produce new versions of the binary).

> 
> If I launch my app, choose a folder, I can run my search on it and everything 
> is fine. That folder gets stored in user defaults via a binding on the path 
> control.

Make sure you’re not just storing a plain path in NSUserDefaults. To maintain 
access to a resource across app launches, you need to use a security-scoped 
bookmark. This is an NSData that is created from an NSURL via 
-bookmarkDataWithOptions:…

Read the Security Scoped Bookmarks and Persistent Access section of the App 
Sandbox Design Guide for more, including what entitlements you need to enable 
to save the appropriate kind of bookmark (app-scoped): 


> And then it immediately goes off with results from a completely different 
> folder:

Not sure what’s happening here; this might be Spotlight trying to do its best 
to fulfill your request.

--Kyle Sluder
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: deny file-read-data after launch

2015-01-08 Thread Graham Cox

> On 9 Jan 2015, at 9:51 am, Steve Mills  wrote:
> 
> I'm having a problem with my app on 10.9 that I'm not sure about. The user 
> chooses a folder via NSPathControl, then I use that to do an NSMetadataQuery 
> for all images inside that folder. I don't have code signing turned on for 
> this app yet, but I do have the Sandbox capability turned on. (This is my 
> first personal project since all this stuff has been introduced.)
> 
> If I launch my app, choose a folder, I can run my search on it and everything 
> is fine. That folder gets stored in user defaults via a binding on the path 
> control. If I quit and launch again, the path looks correct, yet I get 
> sandbox errors on that folder and everything inside it:
> 
> sandboxd: ([372]) Image Snooper(372) deny file-read-data 
> /Volumes/Lemmy/Users/sjmills/Pictures
> 
> And then it immediately goes off with results from a completely different 
> folder:
> 
> kernel: Sandbox: Image Snooper(372) deny file-read-data 
> /Volumes/Lemmy/Library/Application Support/iPhoto/Themes/blah blah blah
> 
> Note that the Pictures folder in question is NOT in my current user folder, 
> but in a user folder NOT on the boot volume.
> 
> Any ideas?
> 


For a sandboxed app, permission to read a folder outside the sandbox is granted 
when you use the NSOpenPanel, as you are doing on your first run. On your 
second run, that permission isn't there. To save a path in user defaults that 
works for a sandboxed app it has to be stored as a "security-scoped bookmark", 
which you then resolve on subsequent launches. That also grants permission.

--Graham



___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Machine sleep & wake notifications in a daemon

2015-01-08 Thread Greg Parker

On Jan 8, 2015, at 2:54 PM, Andrew Keller  wrote:

> On Jan 8, 2015, at 5:20 PM, Ken Thomases  wrote:
> 
>> On Jan 8, 2015, at 4:03 PM, Andrew Keller  wrote:
>> 
>>> I would like to receive machine sleep and wake notifications in my daemon.  
>>> In my Cocoa GUI application, I was able to easily follow the sample code 
>>> under Listing 1 on the page 
>>> , but when I 
>>> tried the same approach in my daemon, I received no errors or warnings from 
>>> Xcode or in the system console, and yet the handlers also did not fire.  
>>> After poking around for a while, I have a hunch that it may have something 
>>> to do with the main event queue not being the same (or existing at all?) in 
>>> a non-Cocoa GUI application.
>>> 
>>> Is it possible to have a Cocoa-style event queue in a daemon, or is there 
>>> another way to receive machine sleep and wake notifications from the OS in 
>>> a daemon?
>> 
>> Did you read further down that QA article you linked to listings 3 and 4?
> 
> Yes.  It looks very promising, but on the first try, I wasn't able to keep 
> the run loop running (it exited immediately).  I suspect that the problem has 
> to do with the run loop not having any input sources.  I'm currently in the 
> middle of 
> ,
>  where it's explaining how to create run loop sources.  I'm learning quite a 
> lot here, but that also means that progress is very slow at the moment.  I 
> figured it would hurt to ping the list to see if there was a simpler solution 
> or perhaps documentation more specialized to my objective.
> 
> Also, I have a feeling that there may be something missing conceptually.  
> Suppose I do manage to keep the run loop running using a new input source.  
> How do the OS and the application frameworks know to route the notification 
> there?  I suspect that some additional object registration may be needed to 
> make the run loop handle the events, or it might be a very specific input 
> source I don't know about yet...

You shouldn't need to write your own run loop source implementation. QA1340's 
sample code shows how it works. IORegisterForSystemPower() creates an 
IONotificationPort that receives power notifications. 
IONotificationPortGetRunLoopSource() creates a run loop source from that 
notification port. CFRunLoopAddSource() adds that run loop source to the run 
loop. Notifications sent by the OS are routed to that run loop, and when you 
run that run loop it calls your callback function with those notifications.

You should double-check that your code is arranged the same way as QA1340's 
code. You should also check for errors from any of those functions; perhaps the 
notification port or run loop source is not created for some reason.


-- 
Greg Parker gpar...@apple.com Runtime Wrangler



___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Machine sleep & wake notifications in a daemon

2015-01-08 Thread Andrew Keller
On Jan 8, 2015, at 5:20 PM, Ken Thomases  wrote:

> On Jan 8, 2015, at 4:03 PM, Andrew Keller  wrote:
> 
>> I would like to receive machine sleep and wake notifications in my daemon.  
>> In my Cocoa GUI application, I was able to easily follow the sample code 
>> under Listing 1 on the page 
>> , but when I 
>> tried the same approach in my daemon, I received no errors or warnings from 
>> Xcode or in the system console, and yet the handlers also did not fire.  
>> After poking around for a while, I have a hunch that it may have something 
>> to do with the main event queue not being the same (or existing at all?) in 
>> a non-Cocoa GUI application.
>> 
>> Is it possible to have a Cocoa-style event queue in a daemon, or is there 
>> another way to receive machine sleep and wake notifications from the OS in a 
>> daemon?
> 
> Did you read further down that QA article you linked to listings 3 and 4?

Yes.  It looks very promising, but on the first try, I wasn't able to keep the 
run loop running (it exited immediately).  I suspect that the problem has to do 
with the run loop not having any input sources.  I'm currently in the middle of 
,
 where it's explaining how to create run loop sources.  I'm learning quite a 
lot here, but that also means that progress is very slow at the moment.  I 
figured it would hurt to ping the list to see if there was a simpler solution 
or perhaps documentation more specialized to my objective.

Also, I have a feeling that there may be something missing conceptually.  
Suppose I do manage to keep the run loop running using a new input source.  How 
do the OS and the application frameworks know to route the notification there?  
I suspect that some additional object registration may be needed to make the 
run loop handle the events, or it might be a very specific input source I don't 
know about yet...

Thanks,
 - Andrew Keller


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

deny file-read-data after launch

2015-01-08 Thread Steve Mills
I'm having a problem with my app on 10.9 that I'm not sure about. The user 
chooses a folder via NSPathControl, then I use that to do an NSMetadataQuery 
for all images inside that folder. I don't have code signing turned on for this 
app yet, but I do have the Sandbox capability turned on. (This is my first 
personal project since all this stuff has been introduced.)

If I launch my app, choose a folder, I can run my search on it and everything 
is fine. That folder gets stored in user defaults via a binding on the path 
control. If I quit and launch again, the path looks correct, yet I get sandbox 
errors on that folder and everything inside it:

sandboxd: ([372]) Image Snooper(372) deny file-read-data 
/Volumes/Lemmy/Users/sjmills/Pictures

And then it immediately goes off with results from a completely different 
folder:

kernel: Sandbox: Image Snooper(372) deny file-read-data 
/Volumes/Lemmy/Library/Application Support/iPhoto/Themes/blah blah blah

Note that the Pictures folder in question is NOT in my current user folder, but 
in a user folder NOT on the boot volume.

Any ideas?

--
Steve Mills
Drummer, Mac geek


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Machine sleep & wake notifications in a daemon

2015-01-08 Thread Ken Thomases
On Jan 8, 2015, at 4:03 PM, Andrew Keller  wrote:

> I would like to receive machine sleep and wake notifications in my daemon.  
> In my Cocoa GUI application, I was able to easily follow the sample code 
> under Listing 1 on the page 
> , but when I 
> tried the same approach in my daemon, I received no errors or warnings from 
> Xcode or in the system console, and yet the handlers also did not fire.  
> After poking around for a while, I have a hunch that it may have something to 
> do with the main event queue not being the same (or existing at all?) in a 
> non-Cocoa GUI application.
> 
> Is it possible to have a Cocoa-style event queue in a daemon, or is there 
> another way to receive machine sleep and wake notifications from the OS in a 
> daemon?

Did you read further down that QA article you linked to listings 3 and 4?

Regards,
Ken


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Blurry is the New Sharp

2015-01-08 Thread Greg Parker

> On Jan 7, 2015, at 7:40 PM, Michael Crawford  wrote:
> 
> The last time I reported a bug of any sort to anyone, I reported quite
> a serious iOS security hole via Radar.
> 
> The Apple engineer who responded quite angrily closed my bug as "works
> as expected".  He didn't just close the bug - he expressed a great
> deal of anger for having reported the exploit at all.
> 
> I'm not real clear what his reasoning was.
> 
> It wasn't just because of this one engineer that I stopped reporting
> bugs, rather that was the end of a long series of failures of vendors
> to fix bugs reported not just by myself but by others.

To report security or privacy issues that affect Apple products or web servers, 
please contact product-secur...@apple.com. Security bugs reported via Radar 
sometimes don't get the attention they deserve.
https://www.apple.com/support/security/


-- 
Greg Parker gpar...@apple.com Runtime Wrangler



___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Machine sleep & wake notifications in a daemon

2015-01-08 Thread Andrew Keller
Good day,

I would like to receive machine sleep and wake notifications in my daemon.  In 
my Cocoa GUI application, I was able to easily follow the sample code under 
Listing 1 on the page 
, but when I 
tried the same approach in my daemon, I received no errors or warnings from 
Xcode or in the system console, and yet the handlers also did not fire.  After 
poking around for a while, I have a hunch that it may have something to do with 
the main event queue not being the same (or existing at all?) in a non-Cocoa 
GUI application.

Is it possible to have a Cocoa-style event queue in a daemon, or is there 
another way to receive machine sleep and wake notifications from the OS in a 
daemon?

Thanks,
- Andrew Keller
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Blurry is the New Sharp

2015-01-08 Thread Jeffrey Oleander



On 2015 Jan 05, at 18:38, Graham Cox wrote:
People suggested that OS X had jumped the shark with Lion. If so, 
we're into Jaws VIII vs. Godzilla 3D territory now.


They foisted intentionally blurry text on us by 2002, but don't single 
out the Apple execs and management.  It has infected all of the 
industry executives, beginning some time around 1985.  "Sure, it works 
fine, so let's do another 'face-lift' which destroys actual 
functionality."   And that applies to their employment practices as 
well as frameworks, web-sites, OSes...   They must have gone to DC to 
lobby for special favors and made the mistake of drinking the same 
water the delusional politicians do, and it spread like virus from 
there.


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Jens Alfke

> On Jan 8, 2015, at 4:43 AM, Charles Jenkins  wrote:
> 
> I'm writing data to XML. When you create a node and set its string contents, 
> the node will happily accept whatever string you give and allow you to 
> serialize information XML deserialization cannot then recreate. In my case, 
> the string in question contained curled quotes. I could serialize and save 
> the data—and if I remember correctly* the output looked good when I inspected 
> the file on disk—but reading it back and deserializing it led to disaster!

No, it's fine for XML text to contain non-ASCII Unicode characters. The problem 
in your case was probably that the doctype string at the start of the document 
didn't properly declare the text encoding. 

What you want to do is write the XML as UTF-8 and add the proper annotation to 
that effect in the doctype. (Sorry, it's been years since I worked with XML so 
I don't remember the exact syntax for doing this.)

The only characters that MUST be escaped in XML text are "<" and "&".

—Jens
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Charles Jenkins
Fantastic! I can't wait to get home and try it!  

—  

Charles


On Thursday, January 8, 2015 at 11:08, Keary Suska wrote:

> NSDictionary *documentAttributes = @{NSDocumentTypeDocumentAttribute: 
> NSHTMLTextDocumentType};
> NSData *htmlData = [s dataFromRange:NSMakeRange(0, s.length) 
> documentAttributes:documentAttributes error:NULL];
> NSString *htmlString = [[NSString alloc] initWithData:htmlData 
> encoding:NSUTF8StringEncoding];


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Displaying a scaling, relative time or date

2015-01-08 Thread Jens Alfke

> On Jan 8, 2015, at 6:43 AM, Gary L. Wade  wrote:
> 
> When it comes to any localized date or number formatters, see if ICU supports 
> it, especially the included version on the earlier OS you need to support. If 
> not but a later one does, you could just include it in your app.

On OS X you may need to include ICU anyway, because it's never been a supported 
public library for 3rd party apps.

But yeah, using something like ICU is better than writing this by hand, because 
otherwise you need to do the I18N yourself.

—Jens
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part II)

2015-01-08 Thread Jens Alfke

> On Jan 8, 2015, at 4:43 AM, Charles Jenkins  wrote:
> 
> I have two ranges from an NSAttributedString. I want to compare their fonts 
> and attributes in such a way as to derive a dictonary containing only the 
> differences. Does a font-and-attribute comparison method already exist?

I'm 99% certain there is nothing like that in the OS; you'll need to write it 
yourself (or do a web search to see if there's an open source library that does 
it…)

—Jens
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Keary Suska
On Jan 8, 2015, at 5:43 AM, Charles Jenkins  wrote:

> I need to deal with two issues that are probably already handled in some 
> Cocoa API I just haven't found yet. This email asks about the first of these 
> issues.  
> 
> I'm writing data to XML. When you create a node and set its string contents, 
> the node will happily accept whatever string you give and allow you to 
> serialize information XML deserialization cannot then recreate. In my case, 
> the string in question contained curled quotes. I could serialize and save 
> the data—and if I remember correctly* the output looked good when I inspected 
> the file on disk—but reading it back and deserializing it led to disaster! 
> Right now I'm using NSString stringByAddingPercentEncoding: and having no 
> further problems with curled quotes, but I'm sure that's a poor long-term 
> solution.
> 
> *I encountered this problem a few weeks ago and put off a final solution by 
> using the percent encoding.
> 
> Is there already a Cocoa API call that would convert a string to use HTML 
> entities so I could safely put any string into an XML node?

You can apparently route through NSAttributedString (found via StackOverflow):

NSAttributedString *s = [[NSAttributedString alloc] 
initWithString:sourceString];
NSDictionary *documentAttributes = @{NSDocumentTypeDocumentAttribute: 
NSHTMLTextDocumentType};
NSData *htmlData = [s dataFromRange:NSMakeRange(0, s.length) 
documentAttributes:documentAttributes error:NULL];
NSString *htmlString = [[NSString alloc] initWithData:htmlData 
encoding:NSUTF8StringEncoding];

HTH,

Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"


___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Greg Weston
Aandi Inston wrote:
> (This is in addition to the five characters prohibited in strings because
> they are XML markup).

Minor nit. There are only 2 prohibited characters in XML, whether in a string 
or out.
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Displaying a scaling, relative time or date

2015-01-08 Thread Gary L. Wade
When it comes to any localized date or number formatters, see if ICU supports 
it, especially the included version on the earlier OS you need to support. If 
not but a later one does, you could just include it in your app.
--
Gary L. Wade (Sent from my iPad)
http://www.garywade.com/

> On Jan 7, 2015, at 4:52 PM, Ken Thomases  wrote:
> 
>> On Jan 7, 2015, at 6:18 PM, Graham Cox  wrote:
>> 
>> I want a label in my interface to display a relative time using a "sensible" 
>> approximate scale depending on the value. I'm not sure if I can use 
>> NSDateFormatter for this - it seems it's a bit too fixed in using only the 
>> units you assign.
>> 
>> For example, if the value is less than a minute, it should say "x seconds 
>> ago", if it's in the range of 1-59 minutes, "x minutes ago", "about an hour 
>> ago", "x hours ago", "yesterday", "x days ago", "about a week ago", "x weeks 
>> ago", "about a month ago", "x months ago" - you get the picture. Is this 
>> possible using NSDateFormatter, or do I have to roll my own for this?
> 
> If you can require 10.10 or iOS 8, there's a new class for this: 
> NSDateComponentsFormatter.  There's no class reference for it yet.  It's 
> described in the Foundation release notes 
> 
>  and in its header file.
> 
> If you can't require those versions of the OSes, then I think you have to 
> roll your own.  Or find a third-party library/framework/class.
> 
> Regards,
> Ken

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Michael Crawford
Do you absolutely _require_ the use of Cocoa to process your XML?

There are oodles of Open Source XML libraries.  I myself have had
great success with Xerces-C (actually C+).
Michael David Crawford, Consulting Software Engineer
mdcrawf...@gmail.com
http://www.warplife.com/mdc/

   Available for Software Development in the Portland, Oregon Metropolitan
Area.


On Thu, Jan 8, 2015 at 5:27 AM, Aandi Inston  wrote:
> I am not familiar with the API you are using, I use my own XML
> generator/parser, but it may be worth nothing something about XML. XML
> files are implicitly Unicode and generally UTF-8. So you cannot put an
> arbitrary sequence of bytes into XML as a string. A curly quote is not in
> the low Latin (<=127) range so it must be a multibyte value.
>
> Clearly there are different API approaches possible on encoding:
> - convert an input encoding to UTF-8
> - accept and write UTF-8 with validation, rejecting bad UTF-8 sequences
> - accept and write UTF-8 with validation, converting bad UTF-8  sequences
> silently to something else
> - accept and write UTF-8 without validation, potentially writing malformed
> XML
> Parsers have similar choices to make. But anyway, if your data is not valid
> UTF-8, it would explain why you get disastrous results.
>
> XML has no standard binary representation for anything other than Unicode
> strings, so symmetric encoding/decoding of such data, following your own
> invention or some extension to basic XML, is the only way. A low level XML
> API cannot be expected to offer this, especially one intended to write XML
> for consumption by other software.
>
> (This is in addition to the five characters prohibited in strings because
> they are XML markup).
>
>
> On Thu, Jan 8, 2015 at 12:43 PM, Charles Jenkins  wrote:
>>
>>
>> I'm writing data to XML. When you create a node and set its string
>> contents, the node will happily accept whatever string you give and allow
>> you to serialize information XML deserialization cannot then recreate. In
>> my case, the string in question contained curled quotes. I could serialize
>> and save the data--and if I remember correctly* the output looked good when
>> I inspected the file on disk--but reading it back and deserializing it led
>> to disaster! Right now I'm using NSString stringByAddingPercentEncoding:
>> and having no further problems with curled quotes, but I'm sure that's a
>> poor long-term solution.
>>
>>
> ___
>
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
> 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:
> https://lists.apple.com/mailman/options/cocoa-dev/mdcrawford%40gmail.com
>
> This email sent to mdcrawf...@gmail.com
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Aandi Inston
I am not familiar with the API you are using, I use my own XML
generator/parser, but it may be worth nothing something about XML. XML
files are implicitly Unicode and generally UTF-8. So you cannot put an
arbitrary sequence of bytes into XML as a string. A curly quote is not in
the low Latin (<=127) range so it must be a multibyte value.

Clearly there are different API approaches possible on encoding:
- convert an input encoding to UTF-8
- accept and write UTF-8 with validation, rejecting bad UTF-8 sequences
- accept and write UTF-8 with validation, converting bad UTF-8  sequences
silently to something else
- accept and write UTF-8 without validation, potentially writing malformed
XML
Parsers have similar choices to make. But anyway, if your data is not valid
UTF-8, it would explain why you get disastrous results.

XML has no standard binary representation for anything other than Unicode
strings, so symmetric encoding/decoding of such data, following your own
invention or some extension to basic XML, is the only way. A low level XML
API cannot be expected to offer this, especially one intended to write XML
for consumption by other software.

(This is in addition to the five characters prohibited in strings because
they are XML markup).


On Thu, Jan 8, 2015 at 12:43 PM, Charles Jenkins  wrote:
>
>
> I'm writing data to XML. When you create a node and set its string
> contents, the node will happily accept whatever string you give and allow
> you to serialize information XML deserialization cannot then recreate. In
> my case, the string in question contained curled quotes. I could serialize
> and save the data—and if I remember correctly* the output looked good when
> I inspected the file on disk—but reading it back and deserializing it led
> to disaster! Right now I'm using NSString stringByAddingPercentEncoding:
> and having no further problems with curled quotes, but I'm sure that's a
> poor long-term solution.
>
>
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: Saving NSAttributedString to a File

2015-01-08 Thread Charles Jenkins
Jeffrey,

FWIW, I started with RTF and then decided I'd need to switch over to using XML 
instead in order to have control of writing out what I needed from my 
NSAttributedStrings. If you're writing RTF for interoperation with another 
program, you may be stuck with it; but if you're working on your own app's 
internal data file format, XML may suit you better. Consider using XML 
serialization to write the data out and NSXMLParser to read it back in.  

The objects are very easy to use (with one exception I just asked about in my 
message entitled "Am I Reinventing the Wheel? (Part I)"). If you do an Internet 
search, you can find good tutorials on getting started with NSXMLParser. It 
took me less than a day to write something that met my needs.  

—  

Charles


On Wednesday, January 7, 2015 at 18:32, Jens Alfke wrote:

>  
> > On Jan 7, 2015, at 1:49 PM, Jeffrey Oleander  > (mailto:jgo...@yahoo.com)> wrote:
> >  
> > So, then the problem becomes, how do you get it to pass on those custom 
> > tags as custom attributes, or to your custom attribute processor?
>  
> By writing your own RTF codec. Apple's doesn't support this.
>  
> —Jens
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Am I Reinventing the Wheel? (Part II)

2015-01-08 Thread Charles Jenkins
This is the second issue for which I'm looking for an existing API call.  

I have two ranges from an NSAttributedString. I want to compare their fonts and 
attributes in such a way as to derive a dictonary containing only the 
differences. Does a font-and-attribute comparison method already exist?

What I'm thinking of writing is a function to create a dictonary and toss in 
FamilyName, PointSize, plus everything in the range's associated attributes 
dictionary. Generate one of these for each attribute range, and then just write 
a dictionary-comparison function which will return a new dictionary containing 
only those attributes which differ.

The purpose is to find out where characters in a paragraph differ from the 
paragraph's overall style, so that my XML data file can store difference ranges 
and attributes only where necessary to recreate the original, rather than 
having to store a lot of redundant information.  

—  

Charles

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Am I Reinventing the Wheel? (Part I)

2015-01-08 Thread Charles Jenkins
"When you try to reinvent the wheel, most often what you end up with is a flat 
tire."

I need to deal with two issues that are probably already handled in some Cocoa 
API I just haven't found yet. This email asks about the first of these issues.  

I'm writing data to XML. When you create a node and set its string contents, 
the node will happily accept whatever string you give and allow you to 
serialize information XML deserialization cannot then recreate. In my case, the 
string in question contained curled quotes. I could serialize and save the 
data—and if I remember correctly* the output looked good when I inspected the 
file on disk—but reading it back and deserializing it led to disaster! Right 
now I'm using NSString stringByAddingPercentEncoding: and having no further 
problems with curled quotes, but I'm sure that's a poor long-term solution.

*I encountered this problem a few weeks ago and put off a final solution by 
using the percent encoding.

Is there already a Cocoa API call that would convert a string to use HTML 
entities so I could safely put any string into an XML node?

—  

Charles

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: NSScrollView autolayout (10.10)

2015-01-08 Thread Roland King

> On 8 Jan 2015, at 00:57, Ken Thomases  wrote:
> 
>> More generally, is this how you’re supposed to set up a view which has 
>> intrinsic content size inside a scroll view in IB, pin that view to the 
>> NSView IB gives you, then pin that to the clipview on 3 sides only and flip 
>> the clip (why?). 
>> 
>> I did try changing the class of the NSView I can’t delete to NSStackView and 
>> avoid the middle man, very bad things happened, constraints were generated 
>> in constraint language which didn’t parse, so I decided to put it back where 
>> it was. 
> 
> For what it's worth, I dragged an NSStackView into a window.  Then, I chose 
> Editor > Embed In > Scroll View.  That resulted in:
> 
> +- NSScrollview
> +- NSClipView
> +- NSStackView
> 
> Then I selected Reset to Suggested Constraints for the whole window.  That 
> added leading, trailing, top, and bottom constraints for the scroll view to 
> its superview and the same for the stack view to the clip view.  The fact 
> that the stack view was constrained on all sides meant that it would never 
> scroll.  Rather, the scroll view would grow to fit it and the window would 
> grow to fit that.  I then deleted the bottom constraint between the stack 
> view and the clip view, similar to what you have.  That resulted in what you 
> described: the stack view was positioned at the bottom of the clip view when 
> it was shorter than the scroll view's content height.

Embed in ScrollView was something I’d forgotten about, using that does make 
more sense and I’ve made another version which goes that way, that removes one 
view. 


> 
> I didn't try subclassing NSClipView to make it flipped.  (I had thought that 
> clip views were flipped by default, but that may not apply with auto layout.) 
>  I assume it would fix the placement of the stack view as you described.
> 
> There's another way to fix that, though.  Rather than removing the bottom 
> constraint between the stack view and the clip view, change it to an 
> inequality.  Make it so that the stack view is _at least_ as tall as the clip 
> view (stack view bottom is greater than or equal to the clip view bottom).  
> When the scroll view is taller than needed to show the stack view's intrinsic 
> height, the stack view is made taller to fill the content size and thus 
> subviews in its top section will appear at the top of the scroll view.  When 
> the scroll view is shorter than needed (either because the stack view grows 
> or because the window is made smaller), the stack view is not forced to be 
> shorter.  Rather, it is allowed to scroll vertically, since the document 
> (stack) view is taller than the content (clip) view.

I finally did make this work when I got the constraint the right way around. I 
see what’s going on there. I eventually today found the WWDC video from 2013 
which mentions ever so briefly how to put a stack view in a scroll view and 
that mentions the clip view must be flipped (and they leave out the bottom 
constraint as I did), but either works just fine and your way doesn’t require 
the subclass which is cool. 

Thanks for the help. Now .. animation time .. 



___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com