ForgetSou | Blog

❤ 武统台湾 刻不容缓 ❤

0%

macOS桌面开发NSAlert的使用

1 简述

附加到窗口的模式对话框或工作表,可以定义标题,描述详情,图标,按钮等。

@interface NSAlert : NSObject

NSAlert总体分为两类:

  • 显示在应用程序中的提示框

    - (void)beginSheetModalForWindow:(NSWindow *)sheetWindow completionHandler:(void (^ _Nullable)(NSModalResponse returnCode))handler API_AVAILABLE(macos(10.9));
  • 单个警报,应用程序外的提示框

    [alert runModal];

2 常用属性

@property (copy) NSString *messageText; // 主要提示信息
@property (copy) NSString *informativeText;// 其他提示信息
@property (null_resettable, strong) NSImage *icon; // 自定义图标,不设置会使用系统默认图标 NSApplicationIcon
/*!
typedef NS_ENUM(NSUInteger, NSAlertStyle) {
NSAlertStyleWarning = 0,
NSAlertStyleInformational = 1,
NSAlertStyleCritical = 2
};
*/
@property NSAlertStyle alertStyle;

@property BOOL showsHelp; // 是否显示帮助锚点
@property (nullable, copy) NSHelpAnchorName helpAnchor; // 锚点内容

@property BOOL showsSuppressionButton API_AVAILABLE(macos(10.5)); // 是否显示复选框
@property (nullable, readonly, strong) NSButton *suppressionButton API_AVAILABLE(macos(10.5));

@property (nullable, strong) NSView *accessoryView API_AVAILABLE(macos(10.5)); // 附件信息

3 初始化

NSAlert *alert = [[NSAlert alloc] init];
阅读全文 »

macOS-BLE蓝牙4.0开发

!!!中心模式 !!!

macOS的BLE程序代码和iOS差不多,只需要修改一些UI组件就可以把iOS的代码放在macOS上使用,下面列举移除不同之处。

1 蓝牙状态一直CBManagerStateUnsupported的问题

Xcode中打开targets中的沙盒蓝牙设置,具体路径: TARGETS - Signing & Capanilities - App Sandbox - Handware - Bluetooth

TARGET-Bluetooth

info.plist 里面添加NSBluetoothPeripheralUsageDescription Value 根据具体业务详细说明使用蓝牙的目的,以提示用户开启蓝牙权限,避免审核被拒。

2 代码实现

2.1 导入蓝牙库

#import <CoreBluetooth/CoreBluetooth.h>
阅读全文 »