How do you prevent Xcode 7 Playgrounds from automatically running? - ios

I'm working on an Xcode 7 Playground that has many things running at once. Whenever I make an edit, it refreshes, restarts what was running and runs through the entire code again. That crashes my playground around every 15 minutes. Is there a way to prevent playgrounds from automatically running whenever I make an edit?

In the lower-left part of the Playground there's a right-facing blue arrow, looking like a "play" button.
Do a long click on this button and you will get two options: "Automatically Run" and "Manually Run".
Choose the latter to put the Playground is manual mode and start/stop its execution yourself by clicking on this button.
You can also trigger the code execution by making a custom shortcut to the "Execute Playground" Editor menu command.
Go to Xcode > Preferences... then go to Key Bindings, scroll down to Editor Menu for Playground and add a new shortcut of your choice by double-clicking in the right column in front of the Execute Playground command.

Actually, you CAN map a shortcut for "Execute Playground" to Cmd+R.
Use macOS keyboard shortcuts, instead of Xcode's keybindings.
Go to System Preferences > Keyboard > Shortcuts,
and in App shortcuts, click on +.
Choose Xcode.app, and add a new shortcut for "Execute Playground" (you have to type precisely this!).
Then click on Add.
Now you can use this shortcut in Xcode.
And don't worry for conflicts (at least up to Xcode 9): Execute Playground is not available for standard Xcode projects, and Run is not active for Playgrounds.

Related

ios keyboard not showing in Settings

After following the steps in here, the custom keyboard section is not shown in the Settings.
One thing that I noticed, is that when setting up the project the "Embed in Application" drop down was set to None and had no other options. Also the directions said to add a Bundle display name row in my plist, but that was already there and had the project/keyboard name there.
I can run the keyboard project and it does ask for me to choose an application (I picked Safari). Then I expected to be able to go to the settings and enable my keyboard, but it is not there.
Make sure the Keyboard Extension Target->General->Deployment Target is not newer than your device's current OS version.
You can try the following option, as it helped in my case:
Select your main app target.
Select "Build Phases"
Expand "Embed App Extensions"
Make sure that checkbox for "Copy only when installing" is unchecked
Run your app and check again Settings
For me, the only thing that worked was restarting the phone.
I could run the main app target and also debug the keyboard extension in another app, however it wouldn't show up in the list at Settings -> General -> Keyboard -> Keyboards -> Add New Keyboard....
As soon as the phone was restarted, the keyboard extension showed up in the list straight away.
My guess is that adding and removing the keyboard many times has the potential to confuse iOS and result in it thinking that the keyboard had already been added (hence why it doesn't show up in the list).
it's just simply solved by adding settings bundle in application
This link may help
http://verisage.us/en/blog/2014/07/17/ios-8-custom-keyboard-swift-tutorial/
In short, you need an dummy app to deploy the keyboard.
Search "To run the custom keyboard and attach the Xcode debugger" in the following link.
You will find how to attach the process to debugger.
https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html#//apple_ref/doc/uid/TP40014214-CH16-SW7

How to launch Appium test with a certain language keyboard on iOS simulator

I am running tests which require having different keyboards open while typing throughout the app. I want to be able to run a test that perhaps launches a script that changes the default language before the test begins. I know you can run scripts which do similar things to change the state of the simulator however I cannot find where the keyboard settings are located.
I spent some time trying to figure this one out.
Here's what I've got for you:
To use different keyboards, you need to tell manually the Simulator which languages you plan on using when you type.
From then on, whenever the keyboard is up, there will be a UIAKey named Next Keyboard that looks like a Globe.
Do a long press on it to get an action sheet open with all the different languages, or click it once to cycle through the keyboards.
Step-by-step:
Go into System Preferences on the simulator
Click on General
Click on Keyboard
Click on Keyboards
Click on Add New Keyboard...
Select (Language)
Close the Simulator
Open your app
Click on a Textfield
See the Globe Button
Click the Globe Button
Keyboard should now be in (Language)

How can I maximize the editor pane in IntelliJ IDEA?

In Eclipse, I can type Ctrl+M or click the maximize icon in the editor pane to make the editor pane take up the entire Eclipse window, and then again to restore the pane back to its previous size exposing the other panes.
Is it possible to perform the equivalent in IntelliJ IDEA?
To clarify, I'm asking about hiding all other tool panes to show only the editor pane. I'm not asking how to go to distraction-free mode, because this is mode is completely "full screen", hiding all toolbars, window decorations, etc.
The closest thing would be to hide all tool windows by invoking the Hide All Tool Windows action. The shortcut for that is Ctrl + Shift + F12 (Default keymap).
This will hide all tool windows, effectively maximizing the editor window (though not full screen). The IntelliJ menu bar, toolbar, breadcrumb and tab bar will still be visible.
I'm using IntelliJ 11.1.2 on Kubuntu 12.04 LTS with the Default keymap.
14.0.3 on MacOS X
It's Cmd + Shift + F12 in IntelliJ IDEA 14.0.3 on MacOS X.
UPDATE on 2015-03-24:
IntelliJ IDEA 14.1 now has support for Distraction Free Mode. You can invoke it by clicking View > Enter Distraction Free Mode. In this mode, IntelliJ hides everything but the menu. For more details, follow their video detailing the new feature: https://www.youtube.com/watch?v=uVwE8MFgYig.
If you want to maximize a pane , select that pane (by clicking inside or on its title bar) and then use the shortcut "Ctrl+Shift+Quotes"
You can double click anywhere on the tab title bar of the editor pane.
All answers work for only hiding other tools. If you have more than one editor pane and you want to maximize only one editor pane (hide all tolls and hide all other editor panes), it is not possible right now.
PyCharm version: 2018.2.7
I use Ctrl-Shift-F12("Hide All Windows") toggle between maximum and normal modes of the editor.
Using IntelliJ 14.1.5
If you want to maximize the editor window AND full-screen the app, you can create a macro with the following two commands:
Toggle Full Screen Mode
Hide All Tool Windows
And then assign a hotkey to the macro. Here's how I did this:
File > Settings > Keymap
Use the search bar to search for the two commands above. Assign obscure hotkeys to those.
Edit > Macros > Start macro recording
Hit the two obscure hotkeys you just assigned: this should max the editor and full-screen the app
Stop recording. Name the macro
Open File > Settings > Keymap again. Find the Macros section, find your macro, assign a nice hotkey to it.
I just assigned ^M(ctrl+M) to Main menu | Window | Active Tool Window | Hide All Tool Windows under preferences(by clicking cmd,). This worked for me exactly like eclipse.
something similar can be achieved by opening your tab in a new window.
The default hotkey for that is shift+f4.
the editor tab remains in the main app window as well, and the new window appears on top of the main app window.
This has already been answered, but since when I google "android studio maximize tab" this is the first answer I see, I'm going to add my two cents.
I hate the keyboard shortcuts since, at any given time, I have 1 hand on my keyboard and 1 hand on my mouse. Having to let go of my mouse to hit a 3-key combination to maximize the current tab is not a shortcut. What I was looking for was an Eclipse-style behavior: double-click the tab to maximize. Here's how to do that:
In Android Studio, under Preferences, go to Keymap->Main Menu->Window->Active Tool Window. Right-click the "Maximize tool window" mapping and select "Add mouse shortcut."
For "Click Count" pick "Double Click" and then double-click on the "Click Pad" mouse icon.
Click OK out of the menus and you should now be able to double-click on any tab and it will be maximized. Double-clicking again will minimize it.
Coming from Eclipse to IntelliJ, this was one of the most frustrating aspects I've had to deal with.
full screen plugin is availble for IntelliJ Idea...
https://github.com/jfim/ideafullscreen
If you need to use the same shortcut like Eclipse Ctrl+M, to minimize/maximize the active editor window,
You can follow the below steps:
Open (File > Settings...) or click ( Ctrl+Alt+s )
Select Keymap
Search for "Hide All Tool Windows"
Change the default shortcut to Ctrl+M
Then you will be able to use the same shortcut as Eclipse.
This is quite an old question and the distraction free mode wasn't exactly what I wanted. This is because it does not hide other editor windows. With 2021.1 EAP this issue has been resolved and maximising the editor hides all other editors but the active one.
For people using IdeaVim trying to emulate the <leader> z behavior of tmux, you can use the following mapping:
map <leader>zz <Action>(MaximizeEditorInSplit)
I searched for something like ctrl+b zin tmux. For me, the similar task solved by key combination shift+f4. It opens your tab in the separated window (which can be closed as usual, alt+f4). My PyCharm version:
PyCharm 2019.2 (Professional Edition)
Build #PY-192.5728.105, built on July 23, 2019
Runtime version: 11.0.3+12-b304.10 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 725M
Cores: 8
Registry:
Non-Bundled Plugins:

Xcode 4.2 jumps to main.m every time after stopping simulator

This is more of a general annoyance. Every time after stopping the simulator, Xcode jumps to main.m for some reason. On the left nav, it jumps to the Debug Navigator.
Is there a way to fix this?
It's annoying because I might be testing a certain line of code, and now each time, I need to make a couple of clicks just to go back to that code.
This problem is not new, seems to get worse though. At the time of writing this, I was on the GM seed, but this problem persists in XCode 4.2 final. This was not a problem in previous versions of XCode.
When we start debug from xcode, the debugger sets itself up to monitor signals from OS. When we press stop button in XCode (or hit cmd + R - which first stops existing instance running and then try to start new one, somewhat equalant to we press manually stop first and then run) SIGKILL is sent to the debugger.
Whenever the cause of interruption is from outside the app (in other words all cases where SIGKILL is sent, like stop button press) , debugger jumps to main, since main is the root of the app and the place where your app meets the OS. Debugger has no way to identify why this SIGKILL is issued (pressing stop button in xcode/ press cmd + R/ delete app from multitasking bar etc), but it treats SIGKILL as outside interrupt, and nothing related with your code. So it jumps to main.
If the cause of interruption is from inside the app (like app crash/SIGABRT) debugger handles it and jumps to the place of crash, which we normally see.
I do not consider this as an xcode bug, rather a normal way of handling SIGKILL. But if you want to stay at your code and do not want to jump to main you can do two things
You can do as Gabe suggested. As BBonified said, it is like a band-aide,
but I think it should work (personally I never tried that)
Report a bug/request for a feature here. Let me tell you you
are not the first one to do so. Already a bug has been reported. See
this and this. But I don't have much hope of a positive action from Apple
And I agree with you, it is sometimes annoying. Especially if you have experienced differently in previous XCode versions. But we can only take what they give here.
I guess it's fair to call it a bug, Xcode 3 specifically suppressed this useless artefact.
I've had success (four times and counting) with this one-liner in ~/.gdbinit:
handle SIGKILL nostop noprint nopass
Taken from this gdb manual:
http://www.delorie.com/gnu/docs/gdb/gdb_39.html
Not sure if it applies to lldb as well.
I tried what David suggested but that didn't work for me, so I tried something similar:
Open Preferences, select Behaviors tab.
Select "Run exits unexpectedly" from left column.
Select "Show debugger with current views".
I'm using Xcode version 4.2 build 4D199.
EDIT: That worked for about 15 minutes. Then it reverted to bringing up main.m in the editor again.
I had the same problem and it WAS really annoying, especially when you were in the middle of debugging, stopping/launching the app several times in a row after small modifications.
Everything is solvable through settings in Xcode user preferences:
Just go to "run completes"
There find the "Show" line and click the checkbox
On the same line modify target to go to "Current" in the dropdown menu.
There you go. Xcode will not move your editing view from now on. Enjoy.
PS: Xcode version 4.2 Build 4C199
Go to Preferences -> Behaviors. Choose "Run Completes" in the left hand side. Check the box next to "Show Tab" and enter a tab name. I use "Edit". This way whenever you stop, you will always be back at a tab called Edit.
None of the other solutions listed were suitable for me, so I made a macro (using an external hotkey utility).
(wait 0.1 second after each step)
command-period
command-1
down arrow
up arrow
command-j
enter
Use this key instead of the normal stop, and you end up with your cursor positioned where you left it. Very nice.
Xcode -> Preferences
Under Behaviors
Click on Run Starts
Checkbox for [Show] debugger with [Current Views]
...worked for me.
None of the preference adjustments seem to work for me.
I have been able to track the offending sequence of events. The SIGKILL error message will occur when you run your app and use multiple threads. For instance, when using UIWebView in my app it will abort to main.m. I verified that when UIWebView is not called, XCode can be stopped without the SIGKILL error message returning the user to main.m
It looks like there are at least two threads that get started when initializing a UIWebView.
However, any threads created by you during the running of your app will cause the SIGKILL to improperly notify XCODE to return to the main.
You can see this in the GDB that there is a switch just before SIGKILL:
[Switching to process 24957 thread 0x2103]
[Switching to process 24957 thread 0x7403]
[Switching to process 24957 thread 0x207]
Program ended with exit code: 0
It is definitely still a bug with XCODE that will hopefully be fixed.
For now, if you avoid executing code that launches a separate thread, it will not change the view back to main.m For code that does launch additional threads, I would recommend quitting the simulator to return to edit mode in XCODE.
None of these solutions worked for me and I find the behavior too intrusive to put up with.
I get round it by using the 'Assistant Editor' instead of the editor as my main editing window. You access the Assistant Editor using the tiny little bow tie button at the top right of the single window.
You can set then it to 'Manual'. Click on the button that is the far left crumb of the breadcrumb trail at the top of the Assistant Editor frame and select Manual from the pop-up menu that appears. The Manual setting allows you to select the file you're editing by clicking on the second to last crumb of the breadcrumb trail and selecting the file from the pop-up that appears.
I then just minimize the size of the main editor - or use it as a secondary editing window, useful given that you can't split the editors into multiple frames any more. Far from ideal - but that's XCode 4 for you.
This might not be much. I was able to avoid this problem 99% of the time by waiting for 2 seconds or so after stopping the app, before relaunching it.
UPDATE: After upgrading to the latest Xcode, I am prompted to use LLDB instead of GDB. The problem seems to be gone now.
I was trying to find the offending line when my code was breaking, so what I did was:
Go to where you define your breakpoints (breakpoint navigator, according to the documentation)
Click in the "+" sign in the left bottom corner of the navigation area
Click on Add Exception breakpoint
You click Done
Run your app
Xcode shows you the offending line.

Can I set the Utilities panel in Xcode 4 to open by default on all new projects?

I'm currently learning iOS development from scratch, and as such, I'm making lots of new projects. Every time I do so, I have to resize the Xcode window (I don't want it maximised, but I don't want it as tiny as it makes it), and I also have to pop open the Utilies and Debug areas, as well as dragging the Objects library up to make it larger. Can I set some defaults in Xcode to do this for every new project?
No, Xcode doesn't include all these options, but you can get part way there. You can setup a behavior that shows or hides the parts of an Xcode window such as the utilities, the toolbar, the debugger, etc. Then it's one menu selection or key command to show the parts, and a little dragging to resize things.
To make a behavior select Behaviors>Edit Behaviors... from the "Xcode" menu in Xcode. Create a new behavior by clicking the "+" symbol near the lower left corner. Give your behavior a name and optionally a key command. Set the options in the behavior to show or hide the parts you want shown or hidden, and maybe even take some of the other available actions.
To run the behavior just select it from the "Behaviors" submenu of the "Xcode" menu, or press the appropriate key command combination.

Resources