UITextViews
1つの UI に 2 つあり、そのうちの 1 つはUITextView
ファーストレスポンダです。もう 1 つUITextView
は編集不可です。編集不可をダブルタップするUITextView
と、キーボードが消えてしまい、これを避けたいです。彼らのキーボードは常に残るはずです。
質問する
409 次
4 に答える
1
テキスト ビューをダブルタップすると、カット、コピーなどのオプションを含む UIMenuController が表示されます。
したがって、要件を達成するには、User Interaction プロパティを NO (False) に設定します。
これがあなたが探しているものであることを願っています。
- ムルナル
于 2013-01-14T09:53:15.183 に答える
1
viewController を textView のデリゲートにして、 UITextViewDelegateメソッドNO
から返すtextViewShouldEndEditing:
- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
if (textView == self.editableTextView) {
return NO;
}
return YES;
}
于 2013-01-14T09:56:50.730 に答える
0
これはデフォルトの動作ではありません。要件を達成するには、遅延メソッドshouldChangeTextInRange
を使用してこれを試し、テキストビューを編集可能にします
- (void)viewDidLoad
{
[super viewDidLoad];
//nonEditingTextView.editable = NO;
//make the nonEditingTextView editable
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ( textView == nonEditingTextView ) {
return NO;
}
return YES;
}
于 2013-01-14T09:46:29.813 に答える
0
//Firstly add the below code for keyboard notification into your viewdidload method.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keybordWillHide:) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keybordWillShow:) name:UIKeyboardWillShowNotification object:nil];
//Let the two textview's names be, NonEditable and Editable
//declare a flag globally
bool Appearflag;
//Then implement the two methods as follows
-(void)keybordWillHide:(NSNotification *)notification
{
if ([NonEditable isFirstResponder] && Appearflag)
{
[Editable becomeFirstResponder];
}else if ([Editable isFirstResponder])
{
Appearflag = NO;
}
}
-(void)keybordWillShow:(NSNotification *)notification
{
if ([Editable isFirstResponder])
{
Appearflag = YES;
}
}
于 2013-01-14T11:49:42.377 に答える