В первом примере со ссылками Вы знаете, что b
не может быть ПУСТЫМ. С примером указателя, b
мог бы быть Нулевой указатель.
Однако примечание, что возможно передать Несуществующий объект через ссылку, но это является неловким и названная процедура может предположить, что это - ошибка сделать так:
a1(*(float *)NULL);
Самый простой способ отключить операции монтажного стола - создать подкласс UITextView
, который переопределяет метод canPerformAction: withSender:
для возврата NO
для действий, которые вы не хотите разрешать:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(paste:))
return NO;
return [super canPerformAction:action withSender:sender];
}
Также см. UIResponder
Я сделал это. В моем UITextView
я очень легко отключил опции вырезания, копирования, выбора и т. Д.
Я поместил UIView
в то же место, где я разместил UITextView
, но в self.view
и добавил метод touchDelegate
следующим образом:
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *scrollTouch=[touches anyObject];
if(scrollTouch.view.tag==1)
{
NSLog(@"viewTouched");
if(scrollTouch.tapCount==1)
[textView1 becomeFirstResponder];
else if(scrollTouch.tapCount==2)
{
NSLog(@"double touch");
return;
}
}
}
, и это сработало для меня. Спасибо.
Это самый простой способ отключить все меню выбора / копирования / вставки в UITextView
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
[UIMenuController sharedMenuController].menuVisible = NO;
return NO;
}
Самый простой способ - создать подкласс UITextView, который переопределяет canPerformAction: withSender:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
[UIMenuController sharedMenuController].menuVisible = NO; //do not display the menu
[self resignFirstResponder]; //do not allow the user to selected anything
return NO;
}
Подкласс UITextView и перезаписать canBecomeFirstResponder:
- (BOOL)canBecomeFirstResponder {
return NO;
}
Обратите внимание, что это относится только к нередактируемым UITextViews! Не тестировал его на редактируемых...