Objective c 删除“删除”;“解雇keybard”;UITextView中的键';iPad上的键盘

Objective c 删除“删除”;“解雇keybard”;UITextView中的键';iPad上的键盘,objective-c,cocoa-touch,ipad,uitextview,Objective C,Cocoa Touch,Ipad,Uitextview,我有一个模态视图,使用UITextView,用户可以输入一些文本(或不输入),然后关闭模态视图。忽略键盘没有任何意义,因为它不会忽略模态视图(这是故意的),没有键盘的UITextView看起来很傻 有没有办法隐藏或删除键盘上的“Disclose keyboard”(解除键盘)键?您不能隐藏或删除该键,但可以使用UITextViewDelegate协议禁用该键: - (BOOL)textViewShouldEndEditing:(UITextView *)textView { retur

我有一个模态视图,使用UITextView,用户可以输入一些文本(或不输入),然后关闭模态视图。忽略键盘没有任何意义,因为它不会忽略模态视图(这是故意的),没有键盘的UITextView看起来很傻


有没有办法隐藏或删除键盘上的“Disclose keyboard”(解除键盘)键?

您不能隐藏或删除该键,但可以使用
UITextViewDelegate
协议禁用该键:

- (BOOL)textViewShouldEndEditing:(UITextView *)textView {

    return NO;
}

如果UIKit强制响应者辞职,而不考虑委托(值得怀疑,但我没有仔细查看调用堆栈),则可以通过观察
UIKeyboardDidHideNotification
并将第一响应者设置回UITextView:
[myUITextView becomeFirstResponder]来强制键盘保持不动

您不能隐藏或删除密钥,但可以使用
UITextViewDelegate
协议禁用密钥:

- (BOOL)textViewShouldEndEditing:(UITextView *)textView {

    return NO;
}

如果UIKit强制响应者辞职,而不考虑委托(值得怀疑,但我没有仔细查看调用堆栈),则可以通过观察
UIKeyboardDidHideNotification
并将第一响应者设置回UITextView:
[myUITextView becomeFirstResponder]来强制键盘保持不动

协议方法没有帮助。 正如Answerbot所建议的,我们应该倾听键盘通知

   - (void)onIpadViewWillAppear
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showIpadKeyboard) name:UIKeyboardDidHideNotification object:nil];
}

- (void)onIpadViewWillDisappear
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)showIpadKeyboard
{
    [myTextField becomeFirstResponder];
}

这项工作很有效,看起来也很漂亮。

协议方法没有帮助。 正如Answerbot所建议的,我们应该倾听键盘通知

   - (void)onIpadViewWillAppear
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showIpadKeyboard) name:UIKeyboardDidHideNotification object:nil];
}

- (void)onIpadViewWillDisappear
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)showIpadKeyboard
{
    [myTextField becomeFirstResponder];
}

这很管用,看起来也很漂亮。

我不确定这是个好主意。也许用户想要关闭键盘来查找它所掩盖的东西。@现在键盘没有掩盖任何东西,模态视图就是这样设计的。在这种情况下,不使用键盘真的毫无意义……我不确定这是个好主意。也许用户想要关闭键盘来查找它所掩盖的东西。@现在键盘没有掩盖任何东西,模态视图就是这样设计的。在这种情况下,关闭键盘真的没有任何意义……好吧,如果没有办法移除它,这是最好的选择。我能改变它的样子吗?如果你真的想删除它,你可以创建一个模仿普通键盘的自定义键盘,但不需要键盘关闭键。查看
inputView
属性的文档。不过,警告一句,这并不实际,因为这样做基本上使键盘无法本地化。另外,我也看到一些黑客将UIKeyboard转换为UIView并在层次结构中爬行,直到找到所需的键并用其他键替换它。这篇苹果开发者论坛的帖子谈到了它,好吧,如果没有办法删除它,这是最好的选择。我能改变它的样子吗?如果你真的想删除它,你可以创建一个模仿普通键盘的自定义键盘,但不需要键盘关闭键。查看
inputView
属性的文档。不过,警告一句,这并不实际,因为这样做基本上使键盘无法本地化。另外,我也看到一些黑客将UIKeyboard转换为UIView并在层次结构中爬行,直到找到所需的键并用其他键替换它。这篇苹果开发者论坛的帖子谈到了这一点