IOS: Drag and Drop interaction without hiding the keyboard
Setting:
I do have a class myView
derived from UIView
which is properly setup for drag (and drop, but drop does not matter for this question). This means that a UIDragInteraction
has been registered view view.addInteraction
and the drag and drop action is working fine (the specific drag items and other implementation does not matter).
Let's say the keyboard is shown on screen (for example because a UITextField
is selected and has become first responder), initiating a drag interaction by touching and dragging the object always dismisses the keyboard. The dismissal takes place after the drag item has been lifted and is moved by the user.
My quesiton: How can I avoid dismissing the keyboard when a drag interaction takes place?
Further inverstigations:
I assumed that the drag interaction somehow calls resignFirstResponder()
for the UITextField
, but even disabling the resignFirstResponder
by overriding it in a subclass and let the substitute do nothing does not prevent the keyboard from being dismissed.
ios swift drag-and-drop
add a comment |
Setting:
I do have a class myView
derived from UIView
which is properly setup for drag (and drop, but drop does not matter for this question). This means that a UIDragInteraction
has been registered view view.addInteraction
and the drag and drop action is working fine (the specific drag items and other implementation does not matter).
Let's say the keyboard is shown on screen (for example because a UITextField
is selected and has become first responder), initiating a drag interaction by touching and dragging the object always dismisses the keyboard. The dismissal takes place after the drag item has been lifted and is moved by the user.
My quesiton: How can I avoid dismissing the keyboard when a drag interaction takes place?
Further inverstigations:
I assumed that the drag interaction somehow calls resignFirstResponder()
for the UITextField
, but even disabling the resignFirstResponder
by overriding it in a subclass and let the substitute do nothing does not prevent the keyboard from being dismissed.
ios swift drag-and-drop
Hello there, is yourUITextField
contained within a UIScrollView?
– Jad Ghadry
Nov 22 at 20:43
@JadGhadry Yes, it is.
– Wizard
Nov 22 at 21:12
add a comment |
Setting:
I do have a class myView
derived from UIView
which is properly setup for drag (and drop, but drop does not matter for this question). This means that a UIDragInteraction
has been registered view view.addInteraction
and the drag and drop action is working fine (the specific drag items and other implementation does not matter).
Let's say the keyboard is shown on screen (for example because a UITextField
is selected and has become first responder), initiating a drag interaction by touching and dragging the object always dismisses the keyboard. The dismissal takes place after the drag item has been lifted and is moved by the user.
My quesiton: How can I avoid dismissing the keyboard when a drag interaction takes place?
Further inverstigations:
I assumed that the drag interaction somehow calls resignFirstResponder()
for the UITextField
, but even disabling the resignFirstResponder
by overriding it in a subclass and let the substitute do nothing does not prevent the keyboard from being dismissed.
ios swift drag-and-drop
Setting:
I do have a class myView
derived from UIView
which is properly setup for drag (and drop, but drop does not matter for this question). This means that a UIDragInteraction
has been registered view view.addInteraction
and the drag and drop action is working fine (the specific drag items and other implementation does not matter).
Let's say the keyboard is shown on screen (for example because a UITextField
is selected and has become first responder), initiating a drag interaction by touching and dragging the object always dismisses the keyboard. The dismissal takes place after the drag item has been lifted and is moved by the user.
My quesiton: How can I avoid dismissing the keyboard when a drag interaction takes place?
Further inverstigations:
I assumed that the drag interaction somehow calls resignFirstResponder()
for the UITextField
, but even disabling the resignFirstResponder
by overriding it in a subclass and let the substitute do nothing does not prevent the keyboard from being dismissed.
ios swift drag-and-drop
ios swift drag-and-drop
asked Nov 22 at 20:40
Wizard
13718
13718
Hello there, is yourUITextField
contained within a UIScrollView?
– Jad Ghadry
Nov 22 at 20:43
@JadGhadry Yes, it is.
– Wizard
Nov 22 at 21:12
add a comment |
Hello there, is yourUITextField
contained within a UIScrollView?
– Jad Ghadry
Nov 22 at 20:43
@JadGhadry Yes, it is.
– Wizard
Nov 22 at 21:12
Hello there, is your
UITextField
contained within a UIScrollView?– Jad Ghadry
Nov 22 at 20:43
Hello there, is your
UITextField
contained within a UIScrollView?– Jad Ghadry
Nov 22 at 20:43
@JadGhadry Yes, it is.
– Wizard
Nov 22 at 21:12
@JadGhadry Yes, it is.
– Wizard
Nov 22 at 21:12
add a comment |
1 Answer
1
active
oldest
votes
Say, in your scenario, you have a UITextField
inside a UIScrollView
that is selected. You can access the keyboardDismissMode
from the corresponding UIScrollView
and set its value to .none
.
Example
Inside your UIViewController
, declare a reference to the UIScrollView
and connect it through your storyboard.
@IBOutlet weak var scrollView: UIScrollView!
Then, inside the viewDidLoad()
method, set the property as declared above.
override func viewDidLoad() {
super.viewDidLoad()
// Configure UIScrollView
self.scrollView.keyboardDismissMode = .none
}
Correct me if I am wrong, but I thinkkeyboardDismissMode
is intended for dragging the scroll view itself, not for drag operations viaUIDragInteraction
. Also,.none
option is the default setting forUIScrollView
. So at least I cannot make this option affect the drag and drop behavior. Am I missing something here?
– Wizard
Nov 23 at 11:40
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53437752%2fios-drag-and-drop-interaction-without-hiding-the-keyboard%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Say, in your scenario, you have a UITextField
inside a UIScrollView
that is selected. You can access the keyboardDismissMode
from the corresponding UIScrollView
and set its value to .none
.
Example
Inside your UIViewController
, declare a reference to the UIScrollView
and connect it through your storyboard.
@IBOutlet weak var scrollView: UIScrollView!
Then, inside the viewDidLoad()
method, set the property as declared above.
override func viewDidLoad() {
super.viewDidLoad()
// Configure UIScrollView
self.scrollView.keyboardDismissMode = .none
}
Correct me if I am wrong, but I thinkkeyboardDismissMode
is intended for dragging the scroll view itself, not for drag operations viaUIDragInteraction
. Also,.none
option is the default setting forUIScrollView
. So at least I cannot make this option affect the drag and drop behavior. Am I missing something here?
– Wizard
Nov 23 at 11:40
add a comment |
Say, in your scenario, you have a UITextField
inside a UIScrollView
that is selected. You can access the keyboardDismissMode
from the corresponding UIScrollView
and set its value to .none
.
Example
Inside your UIViewController
, declare a reference to the UIScrollView
and connect it through your storyboard.
@IBOutlet weak var scrollView: UIScrollView!
Then, inside the viewDidLoad()
method, set the property as declared above.
override func viewDidLoad() {
super.viewDidLoad()
// Configure UIScrollView
self.scrollView.keyboardDismissMode = .none
}
Correct me if I am wrong, but I thinkkeyboardDismissMode
is intended for dragging the scroll view itself, not for drag operations viaUIDragInteraction
. Also,.none
option is the default setting forUIScrollView
. So at least I cannot make this option affect the drag and drop behavior. Am I missing something here?
– Wizard
Nov 23 at 11:40
add a comment |
Say, in your scenario, you have a UITextField
inside a UIScrollView
that is selected. You can access the keyboardDismissMode
from the corresponding UIScrollView
and set its value to .none
.
Example
Inside your UIViewController
, declare a reference to the UIScrollView
and connect it through your storyboard.
@IBOutlet weak var scrollView: UIScrollView!
Then, inside the viewDidLoad()
method, set the property as declared above.
override func viewDidLoad() {
super.viewDidLoad()
// Configure UIScrollView
self.scrollView.keyboardDismissMode = .none
}
Say, in your scenario, you have a UITextField
inside a UIScrollView
that is selected. You can access the keyboardDismissMode
from the corresponding UIScrollView
and set its value to .none
.
Example
Inside your UIViewController
, declare a reference to the UIScrollView
and connect it through your storyboard.
@IBOutlet weak var scrollView: UIScrollView!
Then, inside the viewDidLoad()
method, set the property as declared above.
override func viewDidLoad() {
super.viewDidLoad()
// Configure UIScrollView
self.scrollView.keyboardDismissMode = .none
}
answered Nov 22 at 21:40
Jad Ghadry
129221
129221
Correct me if I am wrong, but I thinkkeyboardDismissMode
is intended for dragging the scroll view itself, not for drag operations viaUIDragInteraction
. Also,.none
option is the default setting forUIScrollView
. So at least I cannot make this option affect the drag and drop behavior. Am I missing something here?
– Wizard
Nov 23 at 11:40
add a comment |
Correct me if I am wrong, but I thinkkeyboardDismissMode
is intended for dragging the scroll view itself, not for drag operations viaUIDragInteraction
. Also,.none
option is the default setting forUIScrollView
. So at least I cannot make this option affect the drag and drop behavior. Am I missing something here?
– Wizard
Nov 23 at 11:40
Correct me if I am wrong, but I think
keyboardDismissMode
is intended for dragging the scroll view itself, not for drag operations via UIDragInteraction
. Also, .none
option is the default setting for UIScrollView
. So at least I cannot make this option affect the drag and drop behavior. Am I missing something here?– Wizard
Nov 23 at 11:40
Correct me if I am wrong, but I think
keyboardDismissMode
is intended for dragging the scroll view itself, not for drag operations via UIDragInteraction
. Also, .none
option is the default setting for UIScrollView
. So at least I cannot make this option affect the drag and drop behavior. Am I missing something here?– Wizard
Nov 23 at 11:40
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53437752%2fios-drag-and-drop-interaction-without-hiding-the-keyboard%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Hello there, is your
UITextField
contained within a UIScrollView?– Jad Ghadry
Nov 22 at 20:43
@JadGhadry Yes, it is.
– Wizard
Nov 22 at 21:12