I've seen behavior like this when a tiny amount of corruption apparently crept into my layout--not enough to crash anything, just enought to screw up the expected tab order behavior. I ended up making a new layout and copying everything but the problem field to my new layout. I then recreated the problem field from scratch and things then worked for me.
Not had a chance to test this yet as I don't have a Mac at my disposal. I will update this post in the future.
If Let( keyCode = Code( Get ( TriggerKeystroke ) ); keyCode = 9 or keyCode = 10 or keyCode = 13)
If GetLayoutObjectAttribute ( "field01" ; "hasFocus" ) = 1
Go to Object [Object name: "field02"]
If GetLayoutObjectAttribute ( "field02" ; "hasFocus" ) = 1
Go to Object [Object name: "field03"]
An Exit or Halt is required after Go to Object.
The pop-up issue is an OS specific issue on the Mac. It is due to how the Mac OS handles pop-up boxes.